如何通过.htaccess删除URL中任何位置的空参数或参数?

时间:2015-12-30 10:34:45

标签: regex .htaccess mod-rewrite url-rewriting

我的意思是空的参数可以在URL的任何地方每次都有不同的地方,每次都有不同的名字,每次都在不同的php页面上,例如:

http://www.example.com/AnyPHPpageHere.php?parameter1=7&parameter2=&parameter3=blue&parameter4=

表格:

 http://www.example.com/AnyPHPpageHere.php?parameter1=7&parameter3=blue

那么如何通过.htaccess呢?

2 个答案:

答案 0 :(得分:2)

您可以使用此网址从网址中的任意位置删除任何一个或多个空参数:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^(.+?&)?[^=]+=(?:&(.*))?$
RewriteRule ^ %{REQUEST_URI}?%1%2 [R=302,L,NE]

答案 1 :(得分:0)

尝试:

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]

如果querystring的值是dynmic,你可以使用正则表达式catpure组:

RewriteEngine on


RewriteCond %{THE_REQUEST} /AnyPHPpageHere\.php\?product=([^&]+)&keyword=&color=([^&]+)&city= [NC]
RewriteRule ^ /AnyPHPpageHere.php?product=%1&color=%2 [NC,L,R=302]