Nginx的location下配置带查询参数的请求跳转

来源:本站原创 点击数: 发布时间:2025年02月24日

问题描述:

例如需要将/governmentColumn?ids=6045请求301到http://cgj.xxx.gov.cn/zwgk/fdzdgknr/hzqlqd/content_23148

解决办法:

常规写法肯定是:

location = /governmentColumn?ids=6045 {

    return 301 http://cgj.xxx.gov.cn/zwgk/fdzdgknr/hzqlqd/content_23148;

}

Nginx的location指令不支持直接匹配带查询参数(如?ids=6045)的URL,因此需要使用其他方法来处理基于查询参数的重定向。我们可以利用map模块来实现这一需求。以下是基于你提供的所有重定向需求的配置示例:


    map $arg_ids $redirect_url {

        default "";

        "6045" "http://cgj.xxx.gov.cn/zwgk/fdzdgknr/hzqlqd/content_23148";

    }

然后在server块下:

location /governmentColumn {

            if ($redirect_url) {

                return 301 $redirect_url;

            }

        }

配置完成后重载nginx即可,可以访问验证是否正常跳转