Apache - 匹配所有目录中的文件



寻找有关如何在通配符目录中匹配特定文件的一些指导。

示例 - 规则需要应用于:

/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/.*" - 但就像我说的,路径不适用于FilesMatchFiles

但是这些指令已经适用于所有子目录,所以如果你把一个.htaccess文件放在公共基目录中,它将应用于所有子目录(除非以后被覆盖):

<Files "index.php">
    ...
</Files>

相关内容

  • 没有找到相关文章

最新更新