2014-02-18 45 views
1

主文件夾的.htaccessRewriteOptions繼承不起作用

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。

任何幫助?

回答

1

這是因爲RewriteOptions Inherit僅包括後目前所有的.htaccess的指令從父.htaccess指令。

official Apache manual

規則從父範圍繼承了子範圍指定的規則之後應用。

因爲您的重寫規則取決於該值,您將需要再次在子分數中設置env變量。

+0

好的,但這不適用於我我將有+1000個子文件夾,這個技巧只在一個文件上設置! – JoeLoco

+0

不幸的是,這是如何htaccess的作品,但如果你升級你的Apache然後有幾個選項可用。 – anubhava