.htaccess 在 php 项目中不起作用

.htaccess 在 php 项目中不起作用

我正在运行 Ubuntu 20.04,目前正在使用 php 创建 api。我添加了一个.htaccess文件,该文件应该将任何 404 页面重定向回我的 index.php。我在 askubuntu 中询问这个问题,因为我认为这可能是我的 apache 配置的问题。我进入我的000-default文件/etc/apace2/sites-available并修改了:

<Directory /var/www/html>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>

我还修改了我的apache2.conf/etc/apache2/apache2.conf使其看起来像这样:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<Directory /usr/share>
    AllowOverride All
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>

这是我的.htaccess 文件的内容:

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Send would-be 404 requests to Craft
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
    RewriteRule (.+) index.php?p=$1 [QSA,L]

</IfModule>

我尝试写入类似“这应该是错误的”之类的内容,但是当我重新加载浏览器时,并没有像预期的那样出现 500 错误,但仍然出现 400 错误,所以这告诉我我的.htaccess文件没有被命中。

在修改了 Apache 或系统文件后,我运行了

sudo systemctl restart apache2但没有骰子。

目前还不确定还需要修改什么。任何帮助都非常感谢,谢谢。

答案1

我怀疑问题不在于您的 .htaccess 被忽略,而在于 mod_rewrite 未启用。尝试sudo a2enmod rewrite重新启动 Apache2。

相关内容