如果指定字符串,则 Nginx 301 重定向

如果指定字符串,则 Nginx 301 重定向

我想为 nginx 服务器块内的特定查询创建永久重定向。例如,我当前的 php 脚本 URL 链接如下:

website.com/?hash=12345 

因此我需要将其更改为website.com/folder/?hash=12345 是否有一种方法仅当在查询中给出参数?hash = 时才永久重定向,而其他所有查询保持原样?

编辑:我在这里做了一些测试

        location ~* /.*hash\=.*/ {
     rewrite ^ https://mysite.eu/bluetracker/$request_uri? permanent;
    }

但遗憾的是这也不起作用

答案1

这很简单。只需检查参数是否存在。

location / {
    if ($arg_hash) {
        return 301 /folder/$is_args$args;
    }

    # everything else...
}

注意,如果存在查询字符串,则$is_args返回,否则返回空字符串。并返回整个查询字符串。?$args

相关内容