301用get变量重定向分页

时间:2013-04-16 14:15:21

标签: .htaccess mod-rewrite rewrite http-status-code-301

我试图在有' page = 1'的网页上设置301重定向。在URL中停止重复的内容问题。

e.g。

http://www.domain.com/reviews/?page=1http://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网址重定向到相关部分的整体解决方案最好。

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分:1)

这个问题已经回答了,我只想提一下你的规则是行不通的,因为你没有在重写规则的新网址中附加一个尾随的?