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]

この式($|&.*$)は、クエリ文字列の末尾または&その後に何かが続くグループ化を作成します。このグループ化は%1、ルールで を使用して後方参照されます。

于 2013-08-21T23:55:09.887 に答える