问题
Empty parameters that I mean can be anywhere in URL each time different place, each time with different name, each time on different php page e.g :
http://www.example.com/AnyPHPpageHere.php?parameter1=7¶meter2=¶meter3=blue¶meter4=
to the form:
http://www.example.com/AnyPHPpageHere.php?parameter1=7¶meter3=blue
So how to do it via .htaccess?
回答1:
You can use this URL to remove any one or more empty parameters from anywhere in URLs:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.+?&)?[^=]+=(?:&(.*))?$
RewriteRule ^ %{REQUEST_URI}?%1%2 [R=302,L,NE]
回答2:
Try :
RewriteEngine on
RewriteCond %{THE_REQUEST} /AnyPHPpageHere\.php\?product=7&keyword=&color=blue&city= [NC]
RewriteRule ^ /AnyPHPpageHere.php?product=7&color=blue [NC,L,R=302]
If values of querystring are dynmic, you can use regex catpure groups :
RewriteEngine on
RewriteCond %{THE_REQUEST} /AnyPHPpageHere\.php\?product=([^&]+)&keyword=&color=([^&]+)&city= [NC]
RewriteRule ^ /AnyPHPpageHere.php?product=%1&color=%2 [NC,L,R=302]
来源:https://stackoverflow.com/questions/34527744/how-to-remove-empty-parameter-or-parameters-anywhere-in-url-by-htaccess