我的htaccess规则是:
RewriteCond %{QUERY_STRING} ^param1=val1
RewriteRule ^index\.php$ /page1 [L,R=301]
重定向到网址:http://myhost/page1?param1=val1
如果我的网址是:http://myhost/index.php?param1=val1¶m2=val2
应重定向到:http://myhost/page1?param2=val2
这意味着,它不应该在 RewriteCond
中包含匹配的查询字符串答案 0 :(得分:1)
只需使用群组匹配:
RewriteCond %{QUERY_STRING} ^param1=val1(?:&(.+))?$
RewriteRule ^index\.php$ /page1?%1 [R=301,L,NC]
答案 1 :(得分:0)
您可以使用:
RewriteCond %{QUERY_STRING} .*&?(param\d=val\d)
RewriteRule ^index\.php$ /page1?%1 [R=301,L,NC]
使用:
http://myhost/index.php?param1=val1
- > http://myhost/page1?param1=val1
和
http://myhost/index.php?param1=val1¶m2=val2
- > http://myhost/page1?param2=val2
但只有真实姓名是param1,param2,param3 ......