有条件地设置Apache标头

时间:2014-01-21 23:03:58

标签: apache http-headers cors mod-headers

我正在使用apache服务器,我想有条件地添加标头。

如果URI与某个正则表达式匹配,我想添加标题Access-Control-Allow-Origin: *。有什么好办法呢?

到目前为止我尝试过:

  1. 我使用apr_table_add(rq->headers_out, "Access-Control-Allow-Origin", "*")添加了请求处理程序调用的代码。但是,每当标头Content-Type: application/x-javascript也被设置时,似乎Apache在发送响应之前剥离了标头。这是错误的方法吗?为什么Apache会删除标题?

  2. 我听说mod_headers建议了。 mod_headers是否能够根据与请求URI匹配的正则表达式放置标题?

2 个答案:

答案 0 :(得分:14)

SetEnvIf Request_URI somepartofurl SIGN
Header always add "Access-Control-Allow-Origin" "*" env=SIGN

但仅当位于配置中时才有效。将它放入.htaccess不会有帮助。

答案 1 :(得分:9)

这也应该有用(需要mod_rewrite):

RewriteRule ^/en/foo.*$ - [ENV=SET_ACAO:true]
Header set "Access-Control-Allow-Origin" "*" env=SET_ACAO

其中^/en/foo.*$是与请求网址匹配的正则表达式