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

kof*_*rts 3 apache .htaccess redirect web

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

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

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

Jon*_*Lin 10

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

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

注意:从父作用域继承的规则将在子作用域中指定的规则之后应用.

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

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

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