我在 ubuntu 上有一个 apache 服务器,其中有一个指向我的站点的虚拟主机。问题是我的 htaccess 不起作用。
在我的 apache2.conf 文件中,我有类似的内容
<Directory />
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
如果我将“www”目录的AllowOverride更改为htaccess,则功能正常,但出现 403 禁止错误。请指导我我做错了什么。
问候。
你必须像这样将AllowOverride设置为all。
<Directory "/var/www">
AllowOverride All
</Directory>
之后,如果您遇到禁止错误,那么 htaccess 文件中可能有错误。删除htaccess文件中的代码,然后开始逐块编写代码。通过此您可以调试 htaccess 文件中的错误。想要了解更多信息,你可以看看这个。
更新您的 Apache 配置 允许
.htaccess
文件通过以下命令覆盖指令
<Directory /var/www>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
确保 .htaccess 文件具有可供 Web 服务器读取的正确权限:
sudo chmod 644 /var/www/your-site/.htaccess
调整通往站点根目录的目录的权限:
sudo chmod 755 /var/www
sudo chmod 755 /var/www/your-site
重新启动Apache
sudo service apache2 restart
然后更新.htaccess
RewriteEngine On
RewriteRule ^test$ test.html [L]
如果仍然遇到问题,请检查 Apache 错误日志 (/var/log/apache2/error.log) 中是否有任何可以深入了解问题的特定错误消息。
注: 通过执行这些步骤,您应该能够启用
.htaccess
文件的功能,而不会遇到 403 Forbidden 错误。
#阿帕奇时代