Apache,LocationMatch:匹配查询字符串

时间:2010-01-07 10:35:28

标签: apache query-string locationmatch

如何使用LocationMatch与apache匹配查询字符串?

<LocationMatch "/index.php\?a=b.*">
// ...

...不幸的是不会有效。

2 个答案:

答案 0 :(得分:6)

您似乎无法在Location / LocationMatch中添加查询字符串。

来自Apache Docs

  

对于所有原始(非代理)请求,要匹配的URL是表单/ path /的URL路径。 可能不包含方案,主机名,端口或查询字符串。对于代理请求,要匹配的URL的格式为scheme:// servername / path,您必须包含前缀。

答案 1 :(得分:1)

https://serverfault.com/questions/848320/can-locationmatch-regex-match-query-string-portion

实际上,从Apache 2.4(或更低版本)开始,可以使用如下标记:

<LocationMatch "/test/upload.js">
        <If "%{QUERY_STRING} =~ /query=test/">
                ..
                'Your directives'
                ..
       </If>
</LocationMatch>

在此配置指令中,仅当URL的格式为“ /test/upload.js”且包含查询“ query = test”时,才会应用该指令。