Apache と nginx の書き換えルールを作成する必要があります。
必要な変更:
/search?q=test&**p**=1 to /search?q=test&**page**=1
Apache の場合、以下のコードはうまく機能しますが、nginx 用に変換することはできません。
RewriteCond %{QUERY_STRING} ^q=(.*)&p=([0-9]+)(.*)$
RewriteRule ^(search/?)$ /search?q=%1&page=%2 [NC,L,R]
私は次のようなことを試しました:
if ($query_string ~ "^q=(.*)&p=([0-9]+)(.*)$"){
rewrite ^/(search/?)$ /search?q=%1&page=%2 redirect;
}
しかし、それは次のような言葉で終わります。
/search?q=%1&page=%2&q=%1&page=%2&q=%1&page=%2&q=%1&page=%2&q
何が間違っているのでしょうか?
答え1
モジュール書き換えに関する Nginx ドキュメントにはいくつか例があります。基本的には、正規表現の結果を識別するために間違った文字を使用しています。$
ではなく を使用する必要があります%
。
書き換えルール内で一致する正規表現を繰り返す必要がある場合もあります。