我正在尝试使用LocationMatch正则expression式来尝试匹配某个file upload或通过应用程序下载时。 该应用程序在URL中使用查询string。
请求:
“POST /uploads.js?attachment_id=2&filename=issues%20(12).csv&content_type=application%2Fvnd.ms-excel HTTP / 1.1”200 336
我注意到,正则expression式似乎无法看到“?”后面的查询string。 在URL中。
那是对的吗? 为什么?
有没有办法能够正则expression式在查询string部分匹配什么?
其实这是可能的,因为Apache 2.4(或更less)使用标签如下:
<LocationMatch "/test/upload.js"> <If "%{QUERY_STRING} =~ /query=test/"> .. 'Your directives' .. </If> </LocationMatch>
在这个configuration指令中,只有在URL位于“/test/upload.js”的forms下并且包含查询“query = test”的情况下才会应用指令。
不,LocationMatch与query_string不匹配。
为了补充答案,你可能希望使用从mod_rewrite的RewriteCond来匹配任何查询string,然后将其内部或外部redirect到任何你想要的地方,因为你没有指定的目的以外的匹配query_string,几乎没有更多的话要说。