使用 .htaccess 总是重定向到 index.php 时出现 500 内部服务器错误

500 Internal Server Error when using .htaccess to always redirect to index.php

我目前正在构建自己的 PHP-Framework 以获得一些经验,并且正在遵循 this 指南。

但是我在实施 .htaccess 文件时遇到了一些麻烦。当我打开我的网站时,它显示 500 内部服务器错误。

我的文件夹结构如下:

ProjectName/
  |- src/
  |  |- Controller/
  |  |- Model/
  |  |- View/
  |  | .htaccess
  |  | Dispatcher.php
  |  | Request.php
  |  | Router.php
  |  | index.php
  | .htaccess
  | Dockerfile
  | docker-compose.yml

两个 .htaccess 文件如下所示:

ProjectName/src/.htaccess:

RewriteEngine on
RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC]
RewriteRule ^([a-zA-Z0-9\-\_\/]*)$ index.php?p=

项目名称/.htaccess:

RewriteEngine on
RewriteRule ^([a-zA-Z0-9\-\_\/]*)$ src/

最让我困惑的是:如果我没有实施我的 .htaccess 文件并打开我的网站,那么它会打开 index.php.

我的 docker-图像是 php:7.2-apache 的,似乎 mod-rewrite 没有启用。因此,在 运行 命令 a2enmod rewrite 我的网站再次运行后。