Apache 在多个htaccess文件中重写引擎

Apache 在多个htaccess文件中重写引擎,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有2个.htaccess文件,在/aaa内部有一个onde,在/aaa/bbb内部有另一个 在这两个文件中,我都使用: RewriteEngine On 完全忽略第一个htaccess(/aaa)的规则,只解释第二个(/aaa/bbb)的规则。更奇怪的是,如果我在第一个htaccess(/aaa)中有许多规则,而在(/aaa/bbb)中没有规则,但我将上面的链接保留在/aaa/bbb的htaccess中,那么/aaa/.htaccess中的所有规则仍然被忽略 如何让多个文件在RewriteE

我有2个.htaccess文件,在/aaa内部有一个onde,在/aaa/bbb内部有另一个

在这两个文件中,我都使用:

RewriteEngine On
完全忽略第一个htaccess(/aaa)的规则,只解释第二个(/aaa/bbb)的规则。更奇怪的是,如果我在第一个htaccess(/aaa)中有许多规则,而在(/aaa/bbb)中没有规则,但我将上面的链接保留在/aaa/bbb的htaccess中,那么/aaa/.htaccess中的所有规则仍然被忽略

如何让多个文件在RewriteEngine打开的情况下运行,并让apache按照树目录的顺序尊重所有文件(低目录优先,高目录最后)

如何让多个文件在RewriteEngine打开的情况下运行,并让apache按照树目录的顺序尊重所有文件(低目录优先,高目录最后)

aaa/bbb/.htaccess
中,您应该使用
RewriteOptions
作为:

RewriteOptions Inherit
请注意,它将具有以下行为:

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

编辑:

如果使用
InheritBefore
则顺序将颠倒(这是OP首先需要的),即将首先执行父规则,然后执行子规则。


那么将首先执行/aaa/bbb中的规则,最后执行/aaa中的规则?太好了,我刚刚做了一个测试,它工作得非常好!!我仍然不同意你的回答,因为我说我需要等6分钟。最后一个问题,我的朋友:我在/aaa目录中有很多客户,比如/aaa/ccc和/aaa/ddd。。。如何将“重写选项继承”默认设置为所有htaccess文件?在httpd.conf中有我可以做的任何配置吗?哇,我想我可以在父级most htaccess文件中使用InheritDownBefore,这样所有子级都将继承,而无需在所有htaccess子文件中指定riht?是的
InheritDownBefore
非常有用,因为您不需要在所有子级中使用
重写选项
.htaccess
文件。它只有在Apache
2.4.8
thoughI尝试使用InheritDownBefore并收到500个错误后才可用!:(所以我必须更新我的apache。你知道有什么奇怪吗?我以前用过“重写”在最顶层,父项和父项的规则仍在子项之前处理,因此我不需要在所有子项中使用InheritDownBefore。为什么?我想我必须在所有子项中设置InheritBefore,但不,我只需要在父项中使用它。知道为什么它有效吗?