Перенаправить 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

Похоже, вы даже не попытались хотя бы попытаться получить информацию...

Согласно основному модулю http nginxдокументация. Вы можете использовать либо $is_args, либо $args, либо $arg_name.

Поэтому вы можете просто использовать следующую строку:

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

Поскольку вы не хотите, чтобы второй URL-адрес менялся, нет необходимости что-либо делать с этим URL-адресом.

Связанный контент