Htaccess搜索重定向查询参数

时间:2013-08-21 23:45:59

标签: .htaccess redirect mod-rewrite rewrite

我的网站搜索工作方式遇到了问题,我在这里找不到这个问题的好例子。当用户提交空搜索时,搜索无法正常运行。但是,如果我在搜索参数中加一个加号搜索工作正常;即使搜索是空的。我以为我可以使用htaccess来解决这个问题。这是我到目前为止所得到的:

RewriteCond %{QUERY_STRING} ^s=$
RewriteRule ^ /?s=+ [L,R=301]

如果网址如下,则可以正常工作:

  

http://mysite.com/?s=

但是,我的搜索查询更常见:

  

http://mysite.com/?s=&zipcode=XXXXX&submit=Submit

XXXXX是邮政编码。是否有办法允许此重定向触发,即使在?s =参数后面还有其他参数,同时仍保留其他参数(例如,我不想在重定向上丢失zipcode参数)?

谢谢你的期待!

1 个答案:

答案 0 :(得分:1)

尝试:

RewriteCond %{QUERY_STRING} ^s=($|&.*$)
RewriteRule ^ /?s=+%1 [L,R=301]

表达式($|&.*$)创建一个分组,该分组可以是查询字符串的结尾,也可以是&,后跟任何内容。使用规则中的%1对此分组进行反向引用。