.htaccess - 如何为每个域动态设置标头?

时间:2013-03-18 03:52:42

标签: apache .htaccess cors

我正在努力让CORS在多个域中运行。

    Header add Access-Control-Allow-Origin "http://localhost, http://multiplay.io"

但是,似乎大多数浏览器只支持一个域。我被告知解决方案是为每个传入域设置标头。

如何使用.htaccess文件执行此操作?

1 个答案:

答案 0 :(得分:4)

如果您只希望在两个值之间切换,则可以使用SetEnvIf来区分这两个值。

SetEnvIf Referer "^http://localhost/" is_localhost
Header add Access-Control-Allow-Origin http://localhost env=is_localhost
Header add Access-Control-Allow-Origin http://multiplay.io env!=is_localhost

可能有更优雅的解决方案,但上述(未经测试的)指令之类的东西应该有效。

(请注意,伪造Referer标头是微不足道的,因此在使用Referer标头时,请注意伪造的Referer标头的安全含义。)

此外,如果您只想允许所有主机,则可以指定*而不是列出多个主机名:

Header add Access-Control-Allow-Origin *

但我认为你已经知道了,并且不想那么宽容。