【问题标题】:.htaccess - how to set headers dynamically per domain?.htaccess - 如何为每个域动态设置标题?
【发布时间】:2013-03-18 13:01:18
【问题描述】:

我正在尝试让 CORS 在多个域中运行。

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

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

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

【问题讨论】:

    标签: apache .htaccess cors


    【解决方案1】:

    如果您只希望在两个值之间交替,您可以使用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 *
    

    但我假设您已经知道这一点并且不想那么放任自流。

    【讨论】:

    • 如果我想使用超过 2 个域,我可以创建多个 SetEnvIf ... is_domain_1 ... SetEnvIf ... is_domain_2 吗?
    猜你喜欢
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 2015-04-23
    • 2016-08-05
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多