我正在使用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]
答案 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,其代码相同 - 您的主页。他他