修改.htaccess
文件中的某些配置时,我发现指令RewriteOptions inherit
已存在。我对它的作用感到困惑,是否删除该行并以新的方式开始,或将我的配置附加到现有数据。
该指令的作用是什么,删除该行是否有任何副作用?
旁注:我想使用DirectoryIndex
来选择默认索引文件。
答案 0 :(得分:8)
Inherit
option表示父目录中htaccess文件中的所有规则都是"继承":
Inherit
- 这会强制当前配置继承父配置。在每个虚拟服务器上下文中,这意味着继承主服务器的映射,条件和规则。在每个目录上下文中,这意味着父目录的.htaccess
配置或<Directory>
部分的条件和规则是继承的。继承的规则实际上被复制到使用该指令的部分。如果与本地规则结合使用,则继承的规则将复制到本地规则之后。该指令的位置 - 低于或高于当地规则 - 对此行为没有影响。如果本地规则强制重写停止,则继承的规则将不会被处理。注意:从父作用域继承的规则将在子作用域中指定的规则之后应用。
通常,如果特定子目录中有.htaccess
个文件,则父目录中的任何规则都将被取代,并且不会被应用。请参阅How directives are applied in the .htaccess files Apache HTTP Server Tutorial。:
.htaccess
文件中的配置指令将应用于找到.htaccess
文件的目录及其所有子目录。但是,重要的是还要记住,目录中可能存在.htaccess
个文件。指令按照找到的顺序应用。因此,特定目录中的.htaccess
文件可能会覆盖在目录树中找到的.htaccess
个文件中找到的指令。反过来,这些可能已被覆盖的指令更高,或者在主服务器配置文件本身中。
使用RewriteOptions inherit
选项,父目录中的任何重写规则基本上都附加到子目录中任何规则的末尾。 Apache 2.4还有一个附加选项,可以在子目录中的规则之前或之后附加它们。该指令仅影响mod_rewrite和重写规则。 DirectoryIndex
指令不受影响。如果此htaccess文件已经在您的文档根目录中,那么您可以将其删除,因为没有&#34; parent&#34; htaccess文件。