2014-01-28 32 views
0

我想使用mod_rewrite將http中的所有Url重定向到https,只有一個目錄。不需要的循環.htaccess

換句話說:

  1. 對HTTP內容的任何請求都重定向到內容中的https
  2. 在博客目錄內容的任何請求(URI開始/博客/)將被重定向到其http等效。

我已實現了以下的.htaccess:

RewriteEngine On 

RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} ^/blog/ 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} !^/blog 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

每當我把一個頁面請求的URI /博客開始/我得到重定向循環。我不明白爲什麼。我究竟做錯了什麼?

+0

你在做什麼錯是試圖只保護你的網站的一部分。將整個事情做成僅限https,並完成它。 – zwol

+0

整個網站在https中,除了少數幾個頁面,我需要使用不友好的HTTPS插件。 – user3245222

+0

因此修復該插件。不,我不是在開玩笑。 – zwol

回答

0

試試這個。

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} !blog [NC] 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]