【问题标题】:How to remove GET parameters from url with htaccess?如何使用 htaccess 从 url 中删除 GET 参数?
【发布时间】:2016-04-25 18:16:47
【问题描述】:

我的网站除了在一页上不使用任何 GET 参数。尽管如此,我可以看到谷歌设法用 GET 参数索引了我的一堆页面。这对 SEO(重复内容)来说不是很好...

所以我正在尝试编辑我的 .htaccess 以在所有带有 GET 参数的 url 到没有 GET 参数的 url 之间进行 301 重定向(一个 url 除外)。一些例子:

  • example.com/?foo=42 => example.com/
  • example.com/about?bar=42 => example.com/about
  • example.com/r.php?foobar=42 => url r.php 应该保留 GET 参数

到目前为止,我正在尝试删除所有 GET 参数,但它不起作用。

RewriteEngine On 

RewriteRule ^(.*)\?(.*)$ http://www.example.com/$1 [L,NC,R=301]

知道如何解决这个问题吗?

【问题讨论】:

    标签: .htaccess url-rewriting get


    【解决方案1】:

    您无法使用RewriteRule 匹配查询字符串。

    您可以使用此通用规则删除所有查询字符串,但具有DOT 的请求除外:

    RewriteEngine On
    
    RewriteCond %{QUERY_STRING} .
    RewriteRule ^([^.]*)$ /$1? [L,NE,R=301]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多