LocationMatch 正则表达式可以匹配查询字符串部分吗?

age*_*eur 4 regex apache-2.4

我正在尝试使用 LocationMatch 正则表达式来尝试在通过应用程序上传或下载某个文件时进行匹配。应用程序在 URL 中使用查询字符串。

请求:

“POST /uploads.js?attachment_id=2&filename=issues%20(12).csv&content_type=application%2Fvnd.ms-excel HTTP/1.1”200 336

我注意到正则表达式似乎无法看到“?”之后的查询字符串字符。在网址中。
那是对的吗?为什么?
有没有办法能够正则表达式匹配查询字符串部分中的内容?

小智 9

实际上这是可能的,因为 Apache 2.4(或更低版本)使用标签如下:

<LocationMatch "/test/upload.js">
        <If "%{QUERY_STRING} =~ /query=test/">
                ..
                'Your directives'
                ..
       </If>
</LocationMatch>
Run Code Online (Sandbox Code Playgroud)

在此配置中,指令仅在 URL 为“/test/upload.js”形式并包含查询“query=test”的情况下应用。