【问题标题】:FilesMatch specify pathFilesMatch 指定路径
【发布时间】:2020-09-27 12:19:33
【问题描述】:
<FilesMatch "\.html$">

如何在基目录中指定 only .html 文件?

我想要

https://www.example.com/page.html

但是不是 https://www.example.com/directory/page.html

【问题讨论】:

  • 这似乎用不缓存的 UA 创建了一个无休止的推送文件循环......我可以添加一些东西来限制 1 组推送文件吗?

标签: regex apache .htaccess


【解决方案1】:

由于规则在根目录的.htaccess 中,从下面的讨论中可以清楚地看出,试试这个

<FilesMatch "^\.(html|php)$">
    <If "%{REQUEST_URI} =~ m#^/[^/]+\.(html|php)$#">
        (your directives)
    </If>
</FilesMatch>

请参阅https://httpd.apache.org/docs/2.4/sections.html#file-and-webhttps://httpd.apache.org/docs/2.4/mod/core.html#ifhttps://httpd.apache.org/docs/2.4/expr.html

【讨论】:

  • 对不起,更正了一个错字,复制并重试。
  • 尝试&lt;LocationMatch&gt; 然后:``` (你的指令) ```
  • FilesMatch 不应该接收完整路径;只有文件名正确。您是否已经尝试过&lt;LocationMatch "^/[^/]+\.html$"&gt;
  • 我明白了。它是什么“在哪里”? &lt;Directory&gt;,我怀疑?那么是的,&lt;DirectoryMatch&gt;&lt;LocationMatch&gt; 都不允许在那里。您必须将任何一个移动到服务器或虚拟主机配置。不在.htaccess 中。
  • 如果您只有几个子目录,也许您应该在每个子目录中创建自己的.htaccess,以覆盖根目录中的.htaccess
猜你喜欢
  • 2014-11-07
  • 2018-09-23
  • 2016-11-17
  • 2020-03-06
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 2011-08-31
  • 2016-03-13
相关资源
最近更新 更多