【问题标题】:RequestHeader not getting set on RewriteRule in htaccess未在 htaccess 中的 RewriteRule 上设置 RequestHeader
【发布时间】:2015-05-01 21:16:42
【问题描述】:

我的 htaccess 文件中的以下 RewriteRule 未设置请求标头。

Header set Access-Control-Allow-Origin "*"
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^(.*)&someUser=(.*)$
RewriteRule ^(.*)SDM$ http://some.domain.com/SDM/Publish.aspx [E=SOME:%2,R,L]
RequestHeader set Some-User: "%{SOME}e"

我认为 SOME 环境变量与它没有任何关系,因为我也尝试了一个通用的标头值,但它也没有设置。我确实确保安装了 mod-headers。我正在我的 chrome 开发人员工具中寻找标题。有没有可能不显示?

【问题讨论】:

  • 据我了解,它使内容处理程序(php 或任何处理 aspx)认为请求是使用某个标头发出的,而原始请求没有该标头。它不会影响发回的标头。

标签: apache .htaccess mod-rewrite mod-headers


【解决方案1】:

进行外部重定向时不会设置环境变量,您必须进行内部重写才能设置环境变量,如下所示:

Header set Access-Control-Allow-Origin "*"
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} (^|&)someUser=([^&]+) [NC]
RewriteRule ^(.*)SDM$ /SDM/Publish.aspx [E=SOME:%2,L]

RequestHeader set Some-User "%{SOME}e"

【讨论】:

    猜你喜欢
    • 2020-07-17
    • 1970-01-01
    • 2010-10-09
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 2015-02-05
    • 1970-01-01
    相关资源
    最近更新 更多