例子:
1)url(一个构造不好的url)已经被google索引:
www.abc.com/index.php?产品= ZZZ
2)使用以下重写规则重写URL:
重写规则^zzz$index.php?产品=ZZZ[L,NC]
上面的操作很好,但是我们想告诉google页面已经从(1)url www.abc.com/index.php中的url永久地移动了?product=zzz到(2)www.abc.com/zzz中的url
3)因此,现在我们在规则(2)之上应用以下规则:
重写条件%{查询字符串}^PRODUCT=ZZZ[NC]
重写规则索引http://www.abc.com/zzz?[ l,r=301 ]
这将导致无限循环。我们如何告诉谷歌我们的网站已经从www.abc.com/index.php改变了呢?product=zzz到www.abc.com/zzz?还是谷歌自己来做?
----导致无限循环的当前完全htaccess规则:-----
重写条件%{查询字符串}^PRODUCT=ZZZ[NC]
重写规则索引http://www.abc.com/zzz?[l,r=301 ]
重写规则^zzz$index.php?产品=ZZZ[L,NC]

最佳答案

用以下代码替换现有规则:

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]

关于.htaccess - htaccess重写已经被Google编入索引的重写网址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14815653/

10-13 01:23