【问题标题】:How to match query string in <Files> in htaccess?如何在 htaccess 中匹配 <Files> 中的查询字符串?
【发布时间】:2013-12-30 02:23:33
【问题描述】:

使用它时我可以很好地匹配文件

<Files foo-bar.php>
...
</Files>

但是如果你匹配的字符串是这样的,你怎么匹配呢?

<Files foo-bar.php?foo=bar>
...
</Files>

【问题讨论】:

  • 你不能那样做。如果您能解释为什么需要它,那么我可以尝试给您正确的答案。

标签: apache .htaccess webserver


【解决方案1】:

正如 David 所指出的,解决此问题的一种方法是使用 mod_rewrite,但如果您有 Apache 2.4 或更高版本,则可以使用更简洁的 If directive

<Files foo-bar.php>
   <If "%{QUERY_STRING} =~ /foo=bar/">
       ...
   </If>
</Files>

请注意,指令的参数实际上是一个正则表达式。它非常强大。

【讨论】:

  • 注意:如果你有 Apache 2.4.26 或更高版本,你可以嵌套 Ifs。虽然我仍然想知道如何一次性匹配路径和 GET 参数,但事实证明 REQUEST_URI 不包含参数。嵌套 Ifs 真是太棒了。
【解决方案2】:

这不能用标准的 Apache 指令来完成,as discussed here

但是,根据您要完成的工作,您可能会通过mod_rewrite 取得一些成功。

【讨论】:

    猜你喜欢
    • 2014-01-30
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多