パラメータが存在しない場合にのみNginxをリダイレクトする

パラメータが存在しない場合にのみNginxをリダイレクトする

Nginxでリダイレクトするための要件は次のとおりです -

Redirect Example
1. www.example.com/gaming.html -> www.example.com/gaming-zone.html

No Redirect example (when params are present, dont redirect)
2. www.example.com/gaming.html?name=foo -> www.example.com/gaming.html?name=foo 

非常にシンプルなリダイレクト設定をしました -

rewrite ^/gaming.html$ /gaming-zone.html redirect;

これは例 1 を満たしますが、例 2 もリダイレクトします。パラメータを含む URL がリダイレクトされないようにルールを修正する方法を教えていただけますか?

答え1

少なくとも情報を得ようとはしなかったようですね…。

nginx httpコアモジュールによるとドキュメンテーション$is_args または $args または $arg_name のいずれかを使用できます。

したがって、次の行を使用するだけです。

if($is_args = ""){
    rewrite ^/gaming.html$ /gaming-zone.html redirect;
}

2 番目の URL は変更したくないので、その URL に対して何もする必要はありません。

関連情報