<FilesMatch> 是 Apache 配置指令,用于 匹配指定文件名或文件类型,并对其应用特定配置。

它和 <Files> 类似,但 <FilesMatch> 支持 正则表达式,更灵活。

基本用法

<FilesMatch “正则表达式”>
指令…
</FilesMatch>

“正则表达式”:匹配文件名

里面可以放任意适用于 <Directory> 或 <Files> 的指令,例如 SetHandler、Require、Order 等

示例 1:匹配 PHP 文件

<FilesMatch “\.php$”>
SetHandler “proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost/”
</FilesMatch>

说明:

  • \.php$ → 匹配所有以 .php 结尾的文件
  • SetHandler → 指定这些文件的处理方式为 FastCGI 转发到 PHP-FPM
  • 作用:所有 PHP 文件的请求都会经过 PHP-FPM 处理,而不是直接返回或当作静态文件

示例 2:限制访问某类文件

<FilesMatch “\.(htaccess|env|ini)$”>
Require all denied
</FilesMatch>

说明:

  • 匹配 .htaccess, .env, .ini 文件
  • Require all denied → 拒绝访问
  • 作用:保护敏感文件不被浏览器访问

比 <Files> 和 <FilesMatch>

指令 是否支持正则 示例
<Files> ❌ 不支持正则,只能用简单通配符 * <Files "index.php"> ... </Files>
<FilesMatch> ✅ 支持正则 <FilesMatch "\.php$"> ... </FilesMatch>

作者 admin

百度广告效果展示