![使用 .htaccess 文件阻止将 .htaccess 文件加载到子目录](https://linux22.com/image/537814/%E4%BD%BF%E7%94%A8%20.htaccess%20%E6%96%87%E4%BB%B6%E9%98%BB%E6%AD%A2%E5%B0%86%20.htaccess%20%E6%96%87%E4%BB%B6%E5%8A%A0%E8%BD%BD%E5%88%B0%E5%AD%90%E7%9B%AE%E5%BD%95.png)
(Centos 5.2,Apache 2.2.8)
当一个 .htaccess 文件位于另一个文件的子目录中时,它如何工作?
例如,如果我在 /var/www/html/images 中放置一个 .htaccess,它只允许访问 *.jpeg 文件,在 /var/www/html/images/subdir 中放置一个 .htaccess,它允许访问优先于 /var/www/html/images/subdir 中的文件的所有内容?
如果子 .htaccess 优先,是否有任何方法可以设置父 .htaccess 以不允许子目录覆盖其中的设置?
答案1
下级 .htaccess 规则将覆盖父目录的 .htaccess 文件。Apache 从根目录向上爬目录树,并从每个目录中找到的 .htaccess 构建配置树,并且稍后对配置的更改将覆盖先前的设置。
/var/www/.htaccess
/var/www/html/图片/.htaccess覆盖
/var/www/html/图片/subdir/.htaccess覆盖
我不认为 .htaccess 文件可以限制较低的 .htaccess 文件,但您可以考虑禁用 .htaccess 文件(AllowOverride None)并在服务器级别进行配置,或者在较低的目录中创建一个虚拟 .htaccess 文件并使用文件权限限制它的修改。