寻找有关如何在通配符目录中匹配特定文件的一些指导。
示例 - 规则需要应用于:
/path/to/folder1/directory/index.php
/path/to/folder2/directory/index.php
/path/to/folder3/directory/index.php
下面是所做配置的示例。 这个想法是为了确保在访问此文件时提示他们输入用户名/密码:
<FilesMatch "/path/to/*/directory/index.php">
AuthName "Login"
AuthType Basic
AuthUserFile /path/to/.htpasswd
需要有效用户
但是,这似乎不起作用。
编辑
在第一个答案响应之后,我更改了代码。 这样做的主要目的是确保如果有人访问管理员/索引.php文件,则要求他们通过mod_security输入用户名和密码。 不应提示递归到管理员目录的任何其他索引.php文件:
<Directory "/location/to/.*/administrator">
<Files "index.php">
AuthName "Login"
AuthType Basic
AuthUserFile /path/to/.htpasswd
require valid-user
</Files>
</Directory>
这能解决问题吗?
与 <Files>
指令一样,<FilesMatch>
指令仅对文件的基名进行操作,而不对完整路径进行操作,因此指定路径名不起作用。
除此之外,FilesMatch
默认使用正则表达式(<FilesMatch "expression">
与<Files ~ "expression">
基本相同),因此"path/*"
实际上会匹配path
后跟任意数量的斜杠,那么您会"path/.*"
- 但就像我说的,路径不适用于FilesMatch
和Files
。
但是这些指令已经适用于所有子目录,所以如果你把一个.htaccess
文件放在公共基目录中,它将应用于所有子目录(除非以后被覆盖):
<Files "index.php">
...
</Files>