2

我在我的 .htaccess 中添加了一个 X-FRAME-OPTION 标头,以防止点击顶起问题。

<IfModule mod_headers.c>
    Header append X-Frame-Options "SAMEORIGIN"
</IfModule>

现在,我需要允许通过 iframe 从外部域访问某个路由。我正在使用 PHP,并尝试通过以下方式覆盖 X-frame-option 标头:

  header('X-Frame-Options: GOFORIT');

但是,似乎 X-frame-option 没有被覆盖,而是根据以下浏览器错误 (Chrome) 重新附加:

Multiple 'X-Frame-Options' headers with conflicting values ('GOFORIT, SAMEORIGIN') encountered when loading 'https://foo.com/baz/1'. Falling back to 'DENY'.

您如何覆盖某些页面的 x-frame-options?

4

2 回答 2

0

您可以将这些指令包装在<Location>or<LocationMatch>中,就像大多数指令一样,以限制它们适用的 URL。

此外,如果您打算覆盖标题,请使用“标题集”而不是“标题附加”。

于 2015-04-29T12:54:04.937 回答
0

经过仔细考虑,我最终将标题附件移动到应用程序代码中。在我的情况下,我使用的是 codeigniter,所以我最终将 x-frame-option 标头附加到了一个钩子中。

Covener 的解决方案也是一种可能,但您似乎必须同时访问 apache 配置文件或虚拟主机文件,<location>并且<locationMatch>不能在 .htaccess 文件中使用。

于 2015-04-30T07:42:46.983 回答