【问题标题】:mod_rewrite: add a header if it doesn't already existmod_rewrite:如果它不存在,则添加一个标题
【发布时间】:2016-03-19 23:23:10
【问题描述】:

我正在尝试使用 apache 和 mod_rewrite 添加 CORS 处理。 apache 实例是使用 mod_jk 的多个 tomcat 应用程序的前端。其中一些应用程序有自己的逻辑来添加 CORS 标头 Access-Control-Allow-Origin、Access-Control-Max-Age 等。

对于没有处理 CORS 逻辑的应用程序,我想在 apache 上使用 mod rewrite 来管理它。

有谁知道是否可以仅在标头尚不存在的情况下使用 mod_rewrite 向 HTTP 响应添加标头?如果 CORS 源头被写入两次,浏览器会报错。

【问题讨论】:

标签: apache mod-rewrite cors


【解决方案1】:

mod_rewrite 是重写 url,而不是设置 headers。你要使用的是mod_headers (documentation)。

我不知道 mod_rewrite 是否在 mod_headers 之前运行,但我建议改为使用 SetEnvIf (documentation) 设置环境变量。

你可以这样做:

SetEnvIf Request_URI "^/my/app/(.*)/?$" ADDHEADERS=1

Header set Access-Control-Max-Age 123456 env=ADDHEADERS

【讨论】:

    猜你喜欢
    • 2021-04-04
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-08
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多