2012-02-01 138 views
1

我有一個.htaccess文件,工作正常。 但是,不適用於/specialsubfolderhttp://www.mydomain.com/specialsubfolder/index.php重定向到401.shtmlhtaccess爲子文件夾重寫

所以,我修改.htacces這樣的:

RewriteEngine On 
#part I of .htaccess, performed for everything 

#stops part II from execution if specialsubfolder 
RewriteCond %{REQUEST_URI} "/specialsubfolder/" 
RewriteRule (.*) $1 [L] 

#part II of .htaccess, performed for everything except specialsubfolder 

工作正常。剩下的唯一問題是將特殊子文件夾的所有http重定向到https。

不幸的是,下面的代碼不起作用(無論如何重定向到401.shtml錯誤頁面)。爲什麼?

RewriteEngine On 
#part I of .htaccess, performed for everything 

#http to https for specialsubfolder 
RewriteCond %{REQUEST_URI} "/specialsubfolder/" 
RewriteCond %{HTTPS} !=on 
RewriteRule ^(specialsubfolder/.*)$ https://www.mydomain.com/$1 [R=301,L] 

#stops part II from execution if specialsubfolder 
RewriteCond %{REQUEST_URI} "/specialsubfolder/" 
RewriteRule (.*) $1 [L] 

#part II of .htaccess, performed for everything except specialsubfolder 

謝謝。

回答

3

,因爲你的代碼是在這裏造成無限循環你得到錯誤:

RewriteCond %{REQUEST_URI} "/specialsubfolder/" 
RewriteRule (.*) $1 [L] 

在這裏,我們只是捕捉整個REQUEST_URI,並轉發到相同的REQUEST_URI。例如:一個/specialsubfolder/foo的URI將被轉發到/specialsubfolder/foo,然後一次又一次地重複相同的轉發,直到Apache mod_rewrite用完默認的遞歸限制並拋出錯誤。

這可以很容易地修復,但我很難理解您的要求。你能用簡單的語言簡單地告訴我你使用重寫規則真正實現的目標嗎?

+0

謝謝。根據你的回答,我發現了一個錯誤。非常感謝! – Haradzieniec 2012-02-02 12:48:42

+0

不客氣。 – anubhava 2012-02-02 13:23:53