RewriteOptions Inherit不起作用

时间:2014-02-18 21:35:10

标签: .htaccess mod-rewrite inheritance

主文件夹.htaccess

RewriteRule .* - [E=mktoken:123456]

子文件夹.htaccess

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中的规则,则正确设置mktoken env。但不是从主文件夹.htaccess继承,为什么?

这个想法是从cookie创建一些类型的全局var do block访问。

任何帮助?

1 个答案:

答案 0 :(得分:1)

这是因为RewriteOptions Inherit仅包含来自父.htaccess 的指令当前.htaccess的所有指令。

根据official Apache manual

  

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

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