【发布时间】:2015-08-04 09:09:20
【问题描述】:
我正在尝试在.htaccess 中为所有以.json 结尾的URI 添加一个Access-Control-Origin 标头。我不能使用<FilesMatch>,因为我的路径被 mod_rewrite 重写。 (或者如果我可以,它不起作用。)
我在 Stack 上发现应该可以使用 env 变量来做到这一点:
<IfModule mod_headers.c>
SetEnvIf Request_URI "\.json$" IS_JSON=TRUE
# ".json$" yields the same result
Header set Access-Control-Allow-Origin "*" env=IS_JSON
# "Header add" yields the same result
</IfModule>
但它从不添加标题。
我尝试使用来自another stack answer 的snipper 来检查环境变量是否存在:
RewriteCond %{REQUEST_URI} !echo.php
RewriteRule .* echo.php?uri=%{REQUEST_URI}&json=%{ENV:IS_JSON} [L]
真的是true。
当我删除条件并将其保留为:
Header set Access-Control-Allow-Origin "*"
添加了标头,因此加载了 mod,但我想将其限制为“.json$”。
我做错了什么?
【问题讨论】:
标签: apache .htaccess mod-rewrite