You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Nginx反向代理实现带指定来源信息的URL重定向

Nginx反向代理实现带指定Referrer/Origin的URL重定向配置

核心配置思路

通过正则匹配捕获/redirect/后的目标URL,解码后发起重定向,并在响应头中注入自定义的Referrer和Origin信息,同时可添加安全限制避免开放重定向风险。

基础配置示例

server {
    listen 80;
    server_name example.com;

    location ~ ^/redirect/(.*) {
        # 捕获redirect后的完整目标URL
        set $target_url $1;
        # 解码URL中的转义字符(需Nginx ≥1.17.10)
        set_decoded_uri $decoded_url $target_url;
        # 发送临时重定向响应
        return 302 $decoded_url;
        # 注入自定义Referrer和Origin头
        add_header Referrer "https://your-specified-referrer.com";
        add_header Origin "https://your-specified-origin.com";
        # 可选:控制Referrer发送策略
        add_header Referrer-Policy "origin-when-cross-origin";
    }
}

配置细节说明

  • URL捕获与解码:location ~ ^/redirect/(.*) 通过正则捕获/redirect/后的所有内容作为目标URL;set_decoded_uri用来解码URL中的转义字符(如%3F对应?、%26对应&),确保重定向地址正确。若你的Nginx版本低于1.17.10,可改用rewrite ^/redirect/(.*)$ $1? break;替代解码步骤。
  • 重定向类型:使用302临时重定向,若需永久重定向可替换为301,但临时重定向更适合动态调整的场景。
  • 自定义头注入:add_header指令直接添加指定的Referrer和Origin,替换为你实际需要的地址即可,格式需符合URL规范(如https://xxx.com)。
  • Referrer策略:Referrer-Policy可选配置,用来约束浏览器发送Referrer的行为,可根据需求选择strict-origin-when-cross-origin、no-referrer等策略。

安全增强配置(可选)

为避免被利用进行恶意跳转,可限制目标URL仅允许指定域名:

location ~ ^/redirect/(https?://(google\.com|your-trusted-domain\.com)/.*) {
    set_decoded_uri $decoded_url $1;
    return 302 $decoded_url;
    add_header Referrer "https://your-specified-referrer.com";
    add_header Origin "https://your-specified-origin.com";
}

该配置仅允许跳转到google.com或指定可信域名,有效防范开放重定向漏洞。

内容的提问来源于stack exchange,提问作者leshcode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:02:25