(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 文件并使用文件权限限制它的修改。