我该如何重写:
http://www.example.com/foo.html?order=desc&limit=all&something=else
到
http://www.example.com/foo.html?order=desc&something=else
我想删除所有实例,limit=all
无论 url 中有多少其他参数。
我努力了:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*&)&limit=all(&.*)?$ [NC]
RewriteRule ^foo\.html$ /foo\.html\?%1%2 [R=301,L]
答案1
您有^(.*&)&limit=all(&.*)?$
在限制之前连续两个“与”符号。
由于您确定在限制的两边始终会有参数=全部,因此将其更改为^(.*&)limit=all&(.*)$
答案2
经过一些尝试后,我能够通过以下方式实现这一目标:
RewriteCond %{QUERY_STRING} ^(.*)limit=all\&(.*)$
RewriteRule ^foo\.html$ http://www.example.com/foo\.html?$1%1%2 [R=301,L]
谢谢克里斯删除“&”符号的建议