我正在使用.htaccess重定向301来重定向一个网址,然后将所有查询字符串元素添加到结尾,留下一些在Google中编入索引的网址为/store/product/?d=department&s=section&p=product
。
我已经使用RewriteRule
修改了重定向,而不是附加查询字符串,但是我试图用查询字符串重写旧的重定向网址回到原始网址(因为这些现在看起来像谷歌的两个不同的网址。)
我设法获得了RewriteRule
的工作,/store/product/xxxxx
重定向到/store/product/
,它似乎不适用于整个查询字符串的。
我一直在使用的是:
RewriteRule ^store/product/([a-zA-Z0-9\-_\?=&]+)$ http://www.example.com/store/product/ [NC,R=301,L]
或
RewriteRule ^store/product/\?d=department&s=section&p=product$ http://www.example.com/store/product/ [NC,R=301,L]
希望一切都有意义!
非常感谢
答案 0 :(得分:1)
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^store/product/.*$ http://www.example.com/store/product/? [NC,R=301,L]
答案 1 :(得分:0)
您需要在替换中指定一个空查询,以使原始查询不会自动附加到新网址:
RewriteRule ^store/product/[a-zA-Z0-9\-_=&]+$ http://www.example.com/store/product/? [NC,R=301,L]
请注意替换网址末尾的?
。