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即可,可以访问验证是否正常跳转