301 使用获取变量重定向分页
Posted
技术标签:
【中文标题】301 使用获取变量重定向分页【英文标题】:301 redirecting pagination with get variables 【发布时间】:2013-04-09 00:03:06 【问题描述】:我正在尝试在 URL 中包含“page=1”的页面上设置 301 重定向,以阻止重复内容问题。
例如
http://www.domain.com/reviews/?page=1 到 http://www.domain.com/reviews/
我已经尝试了所有我能找到的变体,但似乎没有任何效果。
RewriteRule ^reviews(/)?page=1$ http://www.domain.com/reviews/ [L,R=301]
RewriteRule ^(.*)/?page=1 http://www.domain.com/reviews/ [R=301,L]
RewriteCond %QUERY_STRING page=1
RewriteRule ^reviews$ http://www.domain.com/reviews/ [R=301,L,NE]
这些都没有奏效。我不太确定还能尝试什么。
我需要为网站的多个不同部分执行此操作:
reviews
news
videos
accessories
hardware
将所有 ?page=1 URL 重定向到其相关部分的整体解决方案是最好的。
【问题讨论】:
【参考方案1】:问题已经得到解答,我只想提一下,您的规则不起作用,因为您没有在重写规则中将尾随 ?
附加到新 url
【讨论】:
【参考方案2】:使用此代码将每个带有 ?page=1
的 URI 重定向到一个不带查询参数的 URI:
RewriteCond %QUERY_STRING ^page=1(&|$) [NC]
RewriteRule ^ %REQUEST_URI? [R=301,L]
否则,如果您只想重定向 /reviews
URI,那么
RewriteCond %QUERY_STRING ^page=1(&|$) [NC]
RewriteRule ^(reviews)/?$ /$1? [R=301,L]
【讨论】:
以上是关于301 使用获取变量重定向分页的主要内容,如果未能解决你的问题,请参考以下文章