【问题标题】:htaccess remove the parameter from urlhtaccess 从 url 中删除参数
【发布时间】:2016-10-09 21:55:47
【问题描述】:

我正在尝试从 url 中删除某些 url 参数。这些参数不再对显示的内容产生影响,但谷歌已经将其中的一堆编入索引。

我想将它们重定向到基本网址。
以下是示例。

来自www.myexamplesite.com/?start=10
收件人:www.myexamplesite.com

来自www.myexamplesite.com/folder1/?start=10
收件人:www.myexamplesite.com/folder1

来自www.myexamplesite.com/folder2/?start=10
收件人:www.myexamplesite.com/folder2

实际上我不需要任何带参数的 url,所以我想知道是否有办法从 url 中捕获和重定向所有其他可能的参数,并且只允许我将在 htaccess 中指定的一些选定参数.

示例:
来自www.myexamplesite.com/?param1=10
收件人:www.myexamplesite.com

来自www.myexamplesite.com/?param1=10&param2=20
收件人:www.myexamplesite.com

来自www.myexamplesite.com/folder1/?param1=10
收件人:www.myexamplesite.com/folder1

来自www.myexamplesite.com/folder1/?param1=10&param2=20
收件人:www.myexamplesite.com/folder1

但是对于应该是我选择的 param3:

来自www.myexamplesite.com/folder1/?param3=10 保持不变:www.myexamplesite.com/folder1/?param3=10

更新
我实际上已经实现了一个解决方案,但我的主要问题是它总是重定向到主页而不是适当的 REQUEST_URI ...

这是我所拥有的:

RewriteCond %{QUERY_STRING} .
RewriteCond %{QUERY_STRING} !^item= 
RewriteCond %{REQUEST_URI} !^/manage
RewriteRule .? http://www.myexamplesite.com%{REQUEST_URI}? [R=301,L] 

【问题讨论】:

    标签: regex .htaccess redirect mod-rewrite


    【解决方案1】:

    您可以使用此规则去除所有查询字符串,除非在其中找到 param3=

    RewriteEngine On
    
    RewriteCond %{QUERY_STRING} .
    RewriteCond %{QUERY_STRING} !(?:^|&)param3= [NC]
    RewriteRule ^ %{REQUEST_URI}? [R=301,L,NE]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-05
      • 2016-03-05
      • 2013-01-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 2018-05-12
      相关资源
      最近更新 更多