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

Apache服务器未设置X-Frame-Options头:如何正确配置SAMEORIGIN参数

Apache配置X-Frame-Options响应头不生效解决方案

核心前置检查

绝大多数配置不生效都是因为未启用Apache的headers模块,先执行以下操作:

  • Debian/Ubuntu系统执行:sudo a2enmod headers
  • CentOS/RHEL系统不需要额外启用模块,headers模块默认已加载
    执行完成后先重启一次Apache:sudo systemctl restart apache2(CentOS/RHEL替换为sudo systemctl restart httpd)

正确配置方法(按生效范围选择)

1. 全局生效(所有站点都携带该响应头)

打开主配置文件:

  • Debian/Ubuntu路径:/etc/apache2/apache2.conf
  • CentOS/RHEL路径:/etc/httpd/conf/httpd.conf
    在文件末尾添加如下配置:
Header always set X-Frame-Options "SAMEORIGIN"

注意:你之前的配置Header set X-Frame-Options: "SAMEORIGIN"多了一个冒号,属于语法错误;添加always参数可以确保错误状态码的响应也携带该头,覆盖范围更完整。
添加完成后重启Apache即可生效。

2. 单站点生效(仅指定站点携带响应头)

修改对应站点的虚拟主机配置文件,Debian/Ubuntu下路径为/etc/apache2/sites-available/你的站点配置名.conf,在<VirtualHost>标签内部添加上述Header配置,保存后执行:

  • 启用站点配置:sudo a2ensite 你的站点配置名
  • 重启Apache生效

3. 目录级生效(仅指定目录下的资源携带响应头)

使用.htaccess配置前需要先开启目录的Override权限:

  1. 打开Apache主配置文件,找到站点根目录对应的<Directory>配置段,将AllowOverride None修改为AllowOverride All
  2. 重启Apache
  3. 在站点目标目录下新建/编辑.htaccess文件,添加如下内容:
    Header always set X-Frame-Options "SAMEORIGIN"
    

生效验证

除了Chrome开发者工具的Network面板,也可以用curl命令直接校验:
curl -I 你的站点访问地址
返回结果中存在X-Frame-Options: SAMEORIGIN即表示配置生效。

常见问题排查

  • 配置修改前先执行语法校验:apache2ctl configtest(CentOS/RHEL替换为httpd -t),避免语法错误导致配置不加载
  • 不要在多个配置文件中重复配置X-Frame-Options,避免规则覆盖
  • 如果站点前置了CDN、反向代理服务,需要确认代理层没有删除该响应头

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 14:09:03