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

Nginx配置X-Frame-OPTIONS后如何为部分URL跳过该跨域限制

Nginx特定URL跳过X-FRAME-OPTIONS限制配置方法

Nginx的add_header指令具备层级继承特性:只有当前配置块没有定义任何add_header规则时,才会继承上层配置的响应头规则。利用这个特性就可以实现特定URL跳过全局X-FRAME-OPTIONS限制,两种常用配置方案如下:


方案1:location匹配规则覆盖(适合少量特定URL场景)

在你现有站点的server配置块中,新增匹配需要跳过限制的URL的location块,在块内重写X-FRAME-OPTIONS规则即可,配置示例:

server {
    listen 80;
    server_name 你的站点域名;
    root 你的站点根目录;

    # 你原有全局配置的X-FRAME-OPTIONS规则
    add_header X-FRAME-OPTIONS "SAMEORIGIN" always;

    # 匹配需要跳过限制的URL,支持正则匹配多个路径
    location ~ ^/(公共嵌入路径|分享接口路径)/ {
        # 方式1:Nginx 1.23.3及以上版本直接设置为空即可移除该响应头
        add_header X-FRAME-OPTIONS "" always;
        # 方式2:如果是仅允许指定域名嵌入,可修改为如下配置
        # add_header X-FRAME-OPTIONS "ALLOW-FROM https://允许嵌入的域名" always;
        # 方式3:已安装ngx_headers_more模块的版本可直接清除头
        # more_clear_headers X-FRAME-OPTIONS;

        # 注意:如果全局还有其他add_header配置(比如X-Content-Type-Options等),需要在当前块内重新编写一遍,否则会丢失
        # add_header X-Content-Type-Options "nosniff" always;
        # add_header X-XSS-Protection "1; mode=block" always;

        # 你原有该路径下的其他配置保持不变,例如反向代理、PHP转发规则等
    }

    # 其他原有配置保持不变
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
}

方案2:map指令动态赋值(适合大量需要跳过的URL场景)

如果需要跳过限制的URL较多,可使用map指令统一管理规则,减少重复配置:

  1. 首先在Nginx全局http配置块(通常是nginx.conf文件内)新增如下map配置:
http {
    # 其他原有http全局配置保持不变
    map $request_uri $frame_header_value {
        default "SAMEORIGIN";
        # 逐行添加需要跳过限制的URL匹配规则,匹配到则值设为空
        ~^/(公共嵌入路径|分享接口路径)/ "";
        ~^/特定单页面.html$ "";
    }
}
  1. 再修改你站点的server配置块,把原来的硬编码X-FRAME-OPTIONS值替换为map定义的变量:
server {
    listen 80;
    server_name 你的站点域名;
    # 替换原有X-FRAME-OPTIONS配置行
    add_header X-FRAME-OPTIONS $frame_header_value always;

    # 其他原有配置全部保持不变
}

配置生效验证

修改完成后执行以下操作验证配置并生效:

  • 执行nginx -t检查配置语法是否正确,返回test is successful再继续操作
  • 执行nginx -s reload重载Nginx配置使规则生效
  • 执行curl -I 测试URL验证响应头,确认目标URL的返回结果中已无X-FRAME-OPTIONS头,或为你设置的预期值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:15:01