2012-04-18 54 views
1

打破我在这一个头..htaccess,mod_rewrite,如何检查空获取var?

需要检查,如果命名为“过滤器”一个GET变量的值或不符合的mod_rewrite ..

  • http://site.com/audio/speakers?filter=应该重定向到:http://site.com/audio/speakers
  • http://site.com/audio/speakers?filter=yes不该“T重定向..

谢谢!

回答

2

你可以试试这个:

RewriteCond %{QUERY_STRING} ^filter=$ [NC] 
RewriteRule ^audio/speakers$ http://site.com/audio/speakers? [R=302,L] 

它只会检查这个URL:/audio/speakers?filter=(其中filter是第一个也是唯一一个参数为空) - 酷似你的URL例子。如果有多个参数,它将不会匹配,并且不会执行任何操作(即使filter将为空)。

如果需要,您可以更改重定向代码形式302(TEMP)到301(永久)。

UPDATE:

RewriteCond %{QUERY_STRING} ^filter=$ [NC] 
RewriteRule ^(.*)$ http://site.com/$1? [R=302,L] 
+0

您好,感谢但^音频/扬声器这只作品的确..虽然这可以根据页面上的变化。任何建议,使在包含每一个网址这项工作一个空的/过滤器=在网址的结尾? 再次感谢! – quokka 2012-04-18 19:25:22

+0

@quokka查看更新 - 适用于任何页面。 – LazyOne 2012-04-18 20:02:25

+0

非常感谢! – quokka 2012-04-19 05:33:38