.htaccess不重定向到404.php而是显示页面名称

时间:2013-04-04 18:16:37

标签: php .htaccess http-status-code-404

我正在尝试为我的网站制作一个自定义404页面并且在使用此规则的根目录中有.htaccess个文件

ErrorDocument 404 404.php //I want to redirect to 404

因此,当我将home.php这样的有效文件名更改为home1.php时,它不会重定向我,而是在该页面上回显404.php

旁注:404.php仅在根目录中

4 个答案:

答案 0 :(得分:25)

这应该这样做

RewriteEngine on
ErrorDocument 404 http://www.yoursite.com/404.php

答案 1 :(得分:8)

.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

答案 2 :(得分:4)

您可以使用htaccess

对404旧页面执行以下操作
RewriteEngine on
ErrorDocument 404 /404.php

但我个人推荐

RewriteEngine on
RewriteRule home.php /home1.php [R=301,L]

因为这会从旧页面名称重定向到新的页面名称,所以任何缓存的搜索引擎结果仍然会在正确的页面上结束,而不是点击404

答案 3 :(得分:1)

在我的情况下,使用Ubuntu发行版,伪指令ErrorDocument如果位于.htaccess目录中的htdocs或其他位置,则无效:事实证明应该将其放入在正确的/etc/apache/sites-enabled/*.conf文件中的<VirtualServer>指令内(例如,如果网站提供https页面,则在指令<VirtualHost *:443>内)。