3

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

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

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

4

1 回答 1

11

Inherit选项意味着目录中 htaccess 文件中的任何规则都是“继承的”:

Inherit- 这会强制当前配置继承父配置。在 per-virtual-server 上下文中,这意味着继承主服务器的映射、条件和规则。在每个目录的上下文中,这意味着父目录的.htaccess配置或<Directory>部分的条件和规则是继承的。继承的规则实际上被复制到使用该指令的部分。如果与本地规则结合使用,继承的规则将复制到本地规则之后。该指令的位置 - 低于或高于当地规则 - 对此行为没有影响。如果本地规则强制停止重写,则不会处理继承的规则。

注意:从父范围继承的规则在子范围中指定的规则之后应用。

通常,如果您.htaccess在特定子目录中有文件,则父目录中的任何规则都将被取代并且不会应用。请参阅如何.htaccess 文件Apache HTTP 服务器教程中应用指令。:

在文件中找到的配置指令.htaccess应用于文件所在的目录.htaccess及其所有子目录。.htaccess但是,重要的是还要记住,在更高的目录中可能有文件。指令按照它们被发现的顺序应用。因此,.htaccess特定目录中的文件可能会覆盖.htaccess在目录树中较高位置的文件中找到的指令。反过来,那些可能已经覆盖了更高的指令,或者在主服务器配置文件本身中。

使用该RewriteOptions inherit选项,父目录中的任何重写规则本质上都附加到子目录中任何规则的末尾。Apache 2.4 有一个附加选项,可以在子目录中的规则之前或之后附加它们。该指令只会影响 mod_rewrite 和 rewrite 规则。该DirectoryIndex指令将不受影响。如果此 htaccess 文件已经在您的文档根目录中,那么您可以将其删除,因为没有“父”htaccess 文件。

于 2013-04-07T22:52:01.967 回答