示例:
1)Google(已构建不良的网址)已被Google编入索引:
www.abc.com/index.php?product=zzz
2)使用以下重写规则重写URL:
RewriteRule ^ zzz $ index.php?product = zzz [L,NC]
以上工作正常,但我们想告诉Google,该网页已永久从(1)网址www.abc.com/index.php?product=zzz中的网址移至(2)www中的网址.abc.com / ZZZ
3)所以现在我们在规则(2)之上应用以下规则:
RewriteCond%{QUERY_STRING} ^ product = zzz [NC]
RewriteRule index http://www.abc.com/zzz? [L,R = 301]
这导致无限循环。我们如何告诉Google我们的网站已从www.abc.com/index.php?product=zzz更改为www.abc.com/zzz?或谷歌会自己做这件事吗?
-----当前完整的htaccess规则导致无限循环:-----
RewriteCond%{QUERY_STRING} ^ product = zzz [NC]
RewriteRule index http://www.abc.com/zzz? [L,R = 301]
RewriteRule ^ zzz $ index.php?product = zzz [L,NC]
答案 0 :(得分:0)
使用以下代码替换现有规则:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php\?product=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=301,L]
RewriteRule ^(zzz)/?$ /index.php?product=$1 [L,NC,QSA]