如何配置Nginx实现跨域名跳转并将原URL路径转为目标查询参数
Nginx 路径参数传递重定向配置教程
配置规则
你需要在源域名(example.com)对应的Nginx server配置块中添加如下规则:
server { listen 80; server_name example.com; # 替换为实际的源域名 # 匹配所有带路径的请求,捕获路径内容 location ~ ^/(.+)$ { # 301为永久重定向,临时重定向可替换为302 return 301 https://example2.com/file.html?x=$1; } # 可选:根路径请求跳转规则,不需要可以删除 location = / { return 301 https://example2.com/file.html; } }
规则说明
- 正则
^/(.+)$会捕获域名后除首斜杠外的所有路径内容,存入变量$1,直接作为目标地址的x参数值 - 如果需要同时保留源请求的原有参数,可将重定向地址修改为
https://example2.com/file.html?x=$1&$args - 若源域名使用HTTPS协议,需将
listen 80修改为listen 443 ssl,并补充对应的SSL证书配置
生效验证
- 配置修改完成后,执行
nginx -t检查配置语法是否正确 - 语法验证通过后,执行
nginx -s reload重载Nginx配置使规则生效 - 测试访问
example.com/ABC,即可正常跳转至example2.com/file.html?x=ABC,多级路径也会完整传递,例如访问example.com/a/b/c会跳转至example2.com/file.html?x=a/b/c
内容的提问来源于stack exchange,提问作者xC2
相关产品推荐
相关产品推荐

