重定向到主页而不是404错误页面!

时间:2009-10-14 11:07:49

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

我正在使用PHP。我有一个.htaccess文件,如下所示,它重定向到主页而不是404错误页面:/这可能是什么问题?感谢帮助!非常感谢!

ErrorDocument 404 /new/err404.html
RewriteEngine On
RewriteBase /new/

RewriteRule ^login.html$ index.php?s=login&a=loginDo [QSA,L]
RewriteRule ^logout.html$ index.php?s=login&a=logoutDo [QSA,L]
RewriteRule ^([^/]*).html$ index.php?s=$1 [QSA,L]
RewriteRule ^members/([^/]*)$ index.php?s=profile&username=$1 [QSA,L]
RewriteRule ^([^/]*)/$ index.php?s=listing&search[cityString]=$1 [QSA,L]
RewriteRule ^([^/]*)/([^/]*)/$ index.php?s=listing&search[neighborhoodString]=$2 [QSA,L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*).html$ index.php?s=details&seo_friendly=$3 [QSA,L]

5 个答案:

答案 0 :(得分:4)

没有路径前缀/new/err404.html的网址路径或错误文档/new/仅为err404.html。这将与你的第三条规则相匹配。

您可以扩展该规则并排除此类错误文档:

RewriteCond $1 !^err[45][0-9][0-9]$
RewriteRule ^([^/]*)\.html$ index.php?s=$1 [QSA,L]

答案 1 :(得分:1)

我认为一个更重要的问题是,为什么要将404重定向到您的主页?

用户需要知道该网页是死的还是坏的,Google也是如此。你需要调查404的来源。

将您的404重定向到您的主页会告诉Google您的链接是A-ok,并且您可能会损害您的排名,具体取决于重定向的链接数量,因为Google可能会将其视为重复内容。

假设你制定了一个影响5,000个页面的规则 - 那么谷歌就会看到5,000个网址具有相同的确切内容 - 主页,它是如何知道这些应该是404的开头?

修复你的404。如果你有合法的内容需要重定向,那么,将它们重定向到他们的新页面,或者最接近的语义页面。

答案 2 :(得分:0)

为什么要尝试为404错误使用重写规则?为什么不直接使用:

 ErrorDocument 404 /new/err404.html

就像你在第一线?您是否希望404保持相对于用户尝试访问的目录?

答案 3 :(得分:0)

通过更改域名和网页名称在.htaccess中尝试此行

ErrorDocument 404 http://www.yoursite.com/pagename.html

答案 4 :(得分:-1)

只需将您的主页代码放入重定向页面即可。使用主页代码更改重定向页面中的代码。因此,您将拥有一个/index.html和/404.html,其代码相同 - 您的主页。他他