htaccess env变量和标题

时间:2015-08-04 09:09:21

标签: apache .htaccess mod-rewrite

我正在尝试在.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 $”。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

而不是Header您可能希望使用RequestHeader向代码发送自定义标头

SetEnvIf Request_URI \.json$ IS_JSON
RequestHeader set Access-Control-Allow-Origin "*" env=IS_JSON