Apache 带有查询字符串的标题集

Apache 带有查询字符串的标题集,apache,.htaccess,Apache,.htaccess,我正在运行apache,仅当请求的查询字符串上有一个变量“q”时,我才尝试设置一个头Foo=bar。我希望在我的htaccess中有类似的内容: <RequestUri "q="> Header set Foor "bar" </RequestUri> 标题设置为“条形” 当然,这是行不通的。我已经尝试过使用“Location”和“LocationMatch”,但在htaccess中不允许使用。那么我该怎么做呢?如果您使用的是Apache2.4,您可以这样做

我正在运行apache,仅当请求的查询字符串上有一个变量“q”时,我才尝试设置一个头Foo=bar。我希望在我的htaccess中有类似的内容:

<RequestUri "q=">
    Header set Foor "bar"
</RequestUri>

标题设置为“条形”

当然,这是行不通的。我已经尝试过使用“Location”和“LocationMatch”,但在htaccess中不允许使用。那么我该怎么做呢?

如果您使用的是Apache2.4,您可以这样做

<If "%{QUERY_STRING} =~ /q=.*?/">
    Header set Foo "bar"
</If>

标题集Foo“bar”


如果要根据查询字符串的值动态设置标题的值,只需在此基础上进一步展开即可,您可以捕获正则表达式组

例如,如果您的URL中有一个“_locale”变量,并且您希望为标题捕获其值,则可以使用:

 <If %{QUERY_STRING} !~ m#_locale=([a-z]{2})#">
     RequestHeader set locale "$1"
</If>

谢谢,先生。最后一个问题:如何检查自定义标头是否存在?Like?是否可以使用查询字符串的值设置标题Foo?示例“q=test”-->Foo:test@user1361529请看下面我的答案。