我正在尝试从网址中删除某些网址参数。这些参数对显示的内容不再有影响,但是google对其进行了索引。

我想将它们重定向到基本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]

最佳答案

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

RewriteEngine On

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

07-24 09:55