2

例子:

1) 网址(结构不佳)已被 Google 索引:
www.abc.com/index.php ?product=zzz

2) 使用以下重写规则重写 URL:
RewriteRule ^zzz$ index.php?product=zzz [L,NC]

上述工作正常,但我们想告诉 Google 该页面已从 (1) URL www.abc.com/index.php?product=zzz 中的 URL 永久移动到 (2) www.abc 中的 URL。 com/zzz

3)所以现在我们在规则(2)之上应用以下规则:
RewriteCond %{QUERY_STRING} ^product=zzz [NC]
RewriteRule index http://www.abc.com/zzz?[左,右=301]

这会导致无限循环。我们如何告诉 Google 我们的网站已从 www.abc.com/index.php?product=zzz 更改为 www.abc.com/zzz?或者谷歌会自己做这件事吗?

-----当前完整的htaccess规则导致无限循环:-----

RewriteCond %{QUERY_STRING} ^product=zzz [NC]
RewriteRule 索引http://www.abc.com/zzz ? [左,右=301]

RewriteRule ^zzz$ index.php?product=zzz [L,NC]

4

1 回答 1

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]
于 2013-02-11T15:55:20.463 回答