.htaccess 重写选项继承don';行不通

.htaccess 重写选项继承don';行不通,.htaccess,mod-rewrite,inheritance,.htaccess,Mod Rewrite,Inheritance,主文件夹.htaccess RewriteRule .* - [E=mktoken:123456] RewriteEngine On RewriteOptions Inherit RewriteBase / RewriteCond %{HTTP_COOKIE} !mktoken=%{ENV:mktoken};? [NC] #RewriteRule .* - [E=mktoken:123456] RewriteRule .* /acompanha/index.php?mktoken=%{ENV:

主文件夹.htaccess

RewriteRule .* - [E=mktoken:123456]
RewriteEngine On
RewriteOptions Inherit
RewriteBase /
RewriteCond %{HTTP_COOKIE} !mktoken=%{ENV:mktoken};? [NC]
#RewriteRule .* - [E=mktoken:123456]
RewriteRule .* /acompanha/index.php?mktoken=%{ENV:mktoken} [L,R]
#RewriteRule ^(.*)$ - [L,F]
子文件夹.htaccess

RewriteRule .* - [E=mktoken:123456]
RewriteEngine On
RewriteOptions Inherit
RewriteBase /
RewriteCond %{HTTP_COOKIE} !mktoken=%{ENV:mktoken};? [NC]
#RewriteRule .* - [E=mktoken:123456]
RewriteRule .* /acompanha/index.php?mktoken=%{ENV:mktoken} [L,R]
#RewriteRule ^(.*)$ - [L,F]
如果我取消对sub folder.htaccess中的规则的注释,则mktoken env设置正确。但不是从主文件夹.htaccess继承,为什么

其思想是创建某种类型的全局变量来阻止来自cookie的访问


有什么帮助吗?

这是因为
重写选项继承的
仅包括当前.htaccess的所有指令之后的父.htaccess指令

根据:

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


您需要在子分数中再次设置env变量,因为您的重写规则取决于该值。

好的,但这对我不起作用,我将有+1000个子文件夹,技巧只在一个文件上设置!不幸的是,htaccess就是这样工作的,但是如果您升级了Apache,那么可用的选项就很少了。如果您使用的是Apache 2.3.10及更高版本,那么您需要的是
RewriteOptions InheritBefore
,甚至更好,可能是
RewriteOptions InheritDownBefore
()