1

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

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

如果 url 是这样的,这很好用:

http://mysite.com/?s=

但是,我的搜索查询通常看起来像:

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

其中 XXXXX 是邮政编码。有没有办法让这个重定向触发,即使 ?s= 参数后面有额外的参数,同时仍然保留额外的参数(例如,我不想在重定向时丢失 zipcode 参数)?

感谢您的关注!

4

1 回答 1

1

尝试:

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

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

于 2013-08-21T23:55:09.887 回答