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 使用获取变量重定向分页的主要内容,如果未能解决你的问题,请参考以下文章

Woocommerce 分页 - 防止第 1 页上的 301 重定向

将404错误页重定向到任意页

将一页重定向到 http 而不是 https

使用获取参数的 Apache 301 重定向

基于位置选择的着陆页重定向(Cookie?)[关闭]

url变量的htaccess 301重定向问题