我正在尝试从网址中删除某些网址参数。这些参数对正在显示的内容没有任何影响,但谷歌有一堆索引。
我想将它们重定向到基本网址 以下是示例。
来自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¶m2=20
收件人:www.myexamplesite.com
来自www.myexamplesite.com/folder1/?param1=10
收件人:www.myexamplesite.com/folder1
来自www.myexamplesite.com/folder1/?param1=10¶m2=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]
答案 0 :(得分:4)
您可以使用此规则删除所有查询字符串,除非在其中找到param3=
。
RewriteEngine On
RewriteCond %{QUERY_STRING} .
RewriteCond %{QUERY_STRING} !(?:^|&)param3= [NC]
RewriteRule ^ %{REQUEST_URI}? [R=301,L,NE]