如何使用LocationMatch
与apache匹配查询字符串?
<LocationMatch "/index.php\?a=b.*">
// ...
...不幸的是不会有效。
答案 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”时,才会应用该指令。