我正在尝试在.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中的一个片段来检查env变量是否在使用:
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 $”。
我做错了什么?
答案 0 :(得分:0)
而不是Header
您可能希望使用RequestHeader
向代码发送自定义标头
SetEnvIf Request_URI \.json$ IS_JSON
RequestHeader set Access-Control-Allow-Origin "*" env=IS_JSON