如何使用LocationMatch
apache 匹配查询字符串?
<LocationMatch "/index.php\?a=b.*">
// ...
......不幸的是不会工作。
如何使用LocationMatch
apache 匹配查询字符串?
<LocationMatch "/index.php\?a=b.*">
// ...
......不幸的是不会工作。
看起来您不能在Location
/中包含查询字符串LocationMatch
。
来自Apache 文档:
对于所有源(非代理)请求,要匹配的 URL 是 /path/ 形式的 URL 路径。不得包含方案、主机名、端口或查询字符串。对于代理请求,要匹配的 URL 的格式为 scheme://servername/path,并且必须包含前缀。
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”时才会应用。