我有一个.htaccess
-文件,它包含下面列出的指令。前三行用于提供403、404和429的自定义错误页面。
ErrorDocument 404 /404.php
ErrorDocument 403 /403.php
ErrorDocument 429 /429.php
DirectoryIndex maintenance.html index.php index.html index.htm home.html
#Rewrite everything to https
<If "%{HTTP_HOST} != 'localhost'">
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</If>
<Else>
# local configuration
# nothing special here...
</Else>
当我发布到我的网站时,这个功能非常好用。当我试图打开一个不存在的页面时,比如mysite.com/wrongpage.php
,自定义的404.php页面就会显示出来。
但是当我尝试在localhost上输入localhost/wrongpage.php
时,它只是显示浏览器默认的404消息。404.php
页面存在,但没有按预期使用。
我不太擅长如何使用.htaccess
文件,但是也许你可以帮助我理解为什么它不能在localhost上工作?
1条答案
按热度按时间oo7oh9g91#
这表明您尚未在本地开发服务器上启用
.htaccess
覆盖。.htaccess
文件基本上被禁用,因此指令不执行任何操作。您需要在服务器配置的适当
<Directory>
容器(或<VirtualHost>
容器)中设置AllowOverride
指令。“适当”是指指向文档根目录的特定<Directory>
容器,而不是整个服务器(应该保持AllowOverride None
)。例如:
然后重新启动Apache。
参考编号: