【问题标题】:htaccess env variable and headershtaccess 环境变量和标头
【发布时间】: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


    【解决方案1】:

    您可能打算使用 RequestHeader 将自定义标头发送到您的代码,而不是 Header

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-01
      • 2023-03-08
      • 1970-01-01
      • 2013-11-30
      • 2016-02-25
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      相关资源
      最近更新 更多