我正在尝试让 CORS 在多个域中运行。
Header add Access-Control-Allow-Origin "http://localhost, http://multiplay.io"
但是,似乎大多数浏览器只支持一个域。有人告诉我,解决方案是为每个传入域设置标头。
您如何使用 .htaccess 文件执行此操作?
如果您只希望在两个值之间交替,您可以使用它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 *
但我假设您已经知道这一点并且不想那么宽容。