我与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]
URL路径或您的错误文档/new/err404.html
不带路径前缀/new/
只是err404.html
。 这将通过您的第三个规则相匹配。
你可以扩展该规则和排除这样的错误文件:
RewriteCond $1 !^err[45][0-9][0-9]$
RewriteRule ^([^/]*)\.html$ index.php?s=$1 [QSA,L]
我觉得更重要的问题,就是为什么要重定向404对您的主页?
用户需要知道页面已经死了/坏了,所以做谷歌。 你需要调查,其中404的来自何方。
重定向你的404的到您的主页会告诉谷歌你的链接是A-OK,你可能会伤害你的排名取决于有多少链接将被重定向,因为谷歌可以把它看作是重复的内容。
说你把影响5000页的规则 - 那么谷歌来了,看到5000的URL与完全相同的内容 - 在主页上,它是如何知道那些被认为是404的,开始用?
修正你的404的。 如果你有需要转向合法的内容,那么,他们重定向到新的页面,或者提供的最接近的语义页面。
为什么你想使用重写规则为您的404错误? 为什么不直接使用:
ErrorDocument 404 /new/err404.html
就像你在第一行? 你想404保持相对于该用户试图进入的目录?
尝试在你的.htaccess该行通过改变域名和页面名称
ErrorDocument 404 http://www.yoursite.com/pagename.html
只要通过您的主页代码到重定向页面。 与你的主页的代码更改重定向页面的代码。 所以,你将有一个/index.html并用相同的代码可以找到/404.html - 您的主页。 呵呵