.htaccess 不重定向到 404.php 而是显示页面名称
Posted
技术标签:
【中文标题】.htaccess 不重定向到 404.php 而是显示页面名称【英文标题】:.htaccess not redirecting to 404.php instead shows page name 【发布时间】:2013-03-26 23:15:47 【问题描述】:我正在尝试为我的网站创建一个自定义 404 页面,并且在使用此规则的根目录中有 .htaccess
文件
ErrorDocument 404 404.php //I want to redirect to 404
因此,当我将 home.php
之类的有效文件名更改为 home1.php
时,它不会重定向我,而是在该页面上回显 404.php
旁注:404.php
仅在根目录中
【问题讨论】:
尝试给它一个尾部斜杠,所以:ErrorDocument 404 /404.php @Nikola 试过但没有运气 【参考方案1】:应该这样做
RewriteEngine on
ErrorDocument 404 http://www.yoursite.com/404.php
【讨论】:
Vuhooooooooo 我在本地,directory/404.php
为我工作,+1,很快就会将您的答案标记为正确
我也在本地,但如果我输入这样的 ErrorDocument 403 /index.php,它会将我重定向到 xampp index.php。我的.htaccess
在我的网站文件夹中。请帮忙..【参考方案2】:
在您的.htaccess
文件中,您应该可以使用:
RewriteEngine on
ErrorDocument 404 /404.php
您可以使用此方法设置额外的错误文档,但我会将它们放在单独的错误目录中:
ErrorDocument 400 /errors/400.php
ErrorDocument 401 /errors/401.php
ErrorDocument 403 /errors/403.php
ErrorDocument 404 /errors/404.php
ErrorDocument 500 /errors/500.php
【讨论】:
【参考方案3】:您可以使用 htaccess 对 404 个旧页面执行以下操作
RewriteEngine on
ErrorDocument 404 /404.php
但我个人会推荐
RewriteEngine on
RewriteRule home.php /home1.php [R=301,L]
因为这会执行从旧页面名称到新页面名称的 301 重定向,所以任何缓存的搜索引擎结果仍然会出现在正确的页面上,而不是遇到 404
【讨论】:
【参考方案4】:在我的情况下,使用 Ubuntu 发行版,如果指令 ErrorDocument
位于 htdocs
目录或其他位置的 .htaccess
中,则该指令无效:事实证明,它应该放在正确的 /etc/apache/sites-enabled/*.conf
中文件,在 <VirtualServer>
指令内(例如,如果网站提供 https 页面,则在指令 <VirtualHost *:443>
内)。
【讨论】:
以上是关于.htaccess 不重定向到 404.php 而是显示页面名称的主要内容,如果未能解决你的问题,请参考以下文章
使用 .htaccess 重定向 404 而不重定向尾部斜杠
.htaccess 重定向显示 404.php 文件的绝对路径。如何避免这种情况?