我正在运行 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。