我正在尝试从网址中剪切参数但保留其他参数,而我从不知道该值。
www.example.com/?useless=somevalue&foo=somevalue&bar=somevalue
to =>
www.example.com/?foo=somevalue&bar=somevalue
www.example.com/?useless=somevalue
to =>
www.example.com/
www.example.com/?foo=somevalue&bar=somevalue&useless=somevalue
to =>
www.example.com/?foo=somevalue&bar=somevalue
答案 0 :(得分:1)
您可以使用此规则从任何位置删除命名查询参数:
RewriteEngine On
RewriteCond %{THE_REQUEST} \?(.*&)?useless=[^&]*&?(\S*)\sHTTP [NC]
RewriteRule ^ %{REQUEST_URI}?%1%2 [R=301,NE,L]
答案 1 :(得分:0)
我现在拥有的:
如果参数在中间
RewriteCond %{QUERY_STRING} ^(.+)&useless=[0-9a-z_-]+&(.+)$ [NC]
RewriteRule (.*) $1?%1&%2 [R=301,L]
如果参数是最后一个
RewriteCond %{QUERY_STRING} ^(.+)&useless=[0-9a-z_-](.+)$ [NC]
RewriteRule (.*) $1?%1 [R=301,L]
如果是第一个,但有一些
RewriteCond %{QUERY_STRING} ^(.+)?useless=[0-9a-z_-]+&(.+)$ [NC]
RewriteRule (.*) $1?%1%2 [R=301,L]
但如果它是唯一的参数
,则无法确定条件和规则