我正在尝试实现一个可嵌入的小部件,功能类似于Twitter嵌入tweet。最简单的解决方案,虽然可能不是最好的,似乎是iframe或HTML5嵌入-但两者都被服务器上的X-Frame-Options头阻止。
我在一个完全控制的专用服务器上运行PHP 5.3和Apache 2.2。
我尝试在iframe PHP文件的第一行放置:
header_remove("X-Frame-Options");
我试着在。htaccess中添加以下内容:
Header unset X-Frame-Options
我检查了httpd.conf, vhost .conf文件,甚至PHP.INI,并搜索了"x-frame"-没有明显相关的。
没有mod_security或其他插件应该在这个服务器上注入这个。
然而,无论我做什么,curl都会验证以下HTTP头:
X-Frame-Options: DENY
是否有一些,也许奇怪的命名设置的地方,仍然可以强制这个头?
X-Frame-Options是由ssl.conf强制设置的。
注释和重新启动Apache允许。htaccess和PHP头管理再次工作。
考虑以下实验:
Header always set X-Frame-Options "DENY"
Header unset X-Frame-Options
Header set set X-Frame-Options "TEST"
响应标头:
X-Frame-Options "DENY"
X-Frame-Options "TEST"
第二个实验:
Header set X-Frame-Options "DENY"
Header unset X-Frame-Options
Header set set X-Frame-Options "TEST"
响应标头:
X-Frame-Options "TEST"
结论:always选项阻止原始值被取消设置,但是它不阻止添加新值
我有同样的问题,我在httpd.conf
中解决了这个问题
Header append X-Frame-Options ALLOWALL
我也必须配置头模块被加载,为了apache理解这个指令。然后必须重新启动httpd。
如果你想在。htaccess中修改这个,可以这样做:
Header always unset X-Frame-Options env=HTTPS;