仅当参数不存在时才重定向 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;
}

由于您希望第二个 url 不变,因此无需对该 url 进行任何操作。

相关内容