5

如何使用LocationMatchapache 匹配查询字符串?

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

......不幸的是不会工作。

4

2 回答 2

7

看起来您不能在Location/中包含查询字符串LocationMatch

来自Apache 文档

对于所有源(非代理)请求,要匹配的 URL 是 /path/ 形式的 URL 路径。不得包含方案、主机名、端口或查询字符串。对于代理请求,要匹配的 URL 的格式为 scheme://servername/path,并且必须包含前缀。

于 2011-12-05T10:20:39.380 回答
3

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”时才会应用。

于 2020-05-24T20:01:24.203 回答