Nginx 重定向多个查询字符串 URL

Nginx 重定向多个查询字符串 URL

我想将某个 URL 重定向到同一网站上的另一个文件夹。每个 URL 都有查询字符串,因此简单的 301 返回不起作用。

我想要的重定向示例。

example.com/th/?n=abc 301 to example.com/thh/?n=abc
example.com/th/?n=xyz 301 to example.com/thh/?n=xyz

搜索解决方案后,我发现了一个仅适用于第一个 URL 的解决方案。

 location ~ /th/ {
    if ($args ~* "^n=abc") {
        set $mid $1;
        rewrite ^.*$ https://example.org/thh/$mid permanent;
    }
   }

但是如果我为 xyz 查询字符串创建相同的规则,则重定向规则就会起作用。

location ~ /th/ {
        if ($args ~* "^n=xyz") {
            set $mid $1;
            rewrite ^.*$ https://example.org/thh/$mid permanent;
        }
       }

第二条规则不起作用,只有第一条规则起作用。我想可能是 mid var 被第一条规则覆盖了。我将 var 改为 jar 仍然不起作用。

有人能帮忙找到解决方案吗?我不想将整个文件夹重定向到 th。

相关内容