通过RewriteRule修复错误的URL

时间:2012-03-12 16:00:14

标签: .htaccess mod-rewrite

Google为我的某个网站选择了一个错误的网址:

  

mysite.com/9807280/2005-Subaru-Outback //

正确的网址应为:

  

mysite.com/9807280/2005/Subaru/Outback/City/Name /

错误链接导致我的RewriteRule中断并且页面不显示,这里是重写:

Options +FollowSymlinks
RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([0-9]+)/?$ /index.php?p=module&prefix=ebosync&module_page=details&id=$1 [NC,QSA,L]
RewriteRule ^([0-9]+)/([0-9]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ /index.php?p=module&prefix=ebosync&module_page=details&id=$1&year=$2&make=$3&model=$4&city=$5&dealer=$6 [NC,QSA,L]

解决此问题的最佳方法是什么?将两个RewriteRules组合成一个考虑缺失参数的方法?

1 个答案:

答案 0 :(得分:1)

您应该写一条规则告诉Google更正链接。

RewriteRule /broken/ /fixed/ [R=301,l]

R = 301会发送HTTP状态301,一旦googlebot再次访问错误的网址,Google就会更新其索引。