URL末尾在我网站的每个页面上都可以进行?css=(mobile|desktop)
查询。我需要像这样删除此查询:
example.com/?css=mobile
至example.com
example.com/dir1?css=mobile
至example.com/dir1
example.com/dir1/.../dir10?css=mobile
至example.com/dir1/.../dir10
我试图这样做,但是我无法制定正确的规则。
RewriteCond %{QUERY_STRING} css=(mobile|desktop)
RewriteRule ^(.*) problemhere [R=301,L]
答案 0 :(得分:1)
我要说的问题是,您需要保留 other 个潜在的get参数...
可能类似的东西可能起作用:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*)&?css=(mobile|desktop)(.*)$
RewriteRule ^/?(.*)$ /$1?%1%2 [R=301,L,QSD]
如果必须使用该规则集(应该尝试防止...),则该规则集应在http服务器主机配置中以及动态配置文件(“ .htaccess”样式文件)中同样起作用。
这是@MrWhite在评论中指出的具有固定条件的修改版本:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*?)&?css=(?:mobile|desktop)(.*)$
RewriteRule ^/?(.*)$ /$1?%1%2 [R=301,L,QSD]