RewriteOptions在htaccess文件中继承了什么?

时间:2013-04-07 22:46:14

标签: apache .htaccess redirect web

修改.htaccess文件中的某些配置时,我发现指令RewriteOptions inherit已存在。我对它的作用感到困惑,是否删除该行并以新的方式开始,或将我的配置附加到现有数据。

该指令的作用是什么,删除该行是否有任何副作用?

旁注:我想使用DirectoryIndex来选择默认索引文件。

1 个答案:

答案 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文件。