【问题标题】:301 redirecting pagination with get variables301 使用获取变量重定向分页
【发布时间】:2013-04-09 00:03:06
【问题描述】:

我正在尝试在 URL 中包含“page=1”的页面上设置 301 重定向,以阻止重复内容问题。

例如

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 URL 重定向到其相关部分的整体解决方案是最好的。

【问题讨论】:

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


    【解决方案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]
      

      【讨论】:

        猜你喜欢
        • 2013-07-01
        • 1970-01-01
        • 2019-02-23
        • 1970-01-01
        • 1970-01-01
        • 2012-10-27
        • 1970-01-01
        • 2013-09-19
        • 2020-02-14
        相关资源
        最近更新 更多