2011-03-23 87 views
0

我已經做了足夠的研究,以弄清楚,重定向整個站點的我所有的https網頁他們的HTTP等價,我需要使用此代碼...HTTPS在.htaccess到http例外

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

我的問題是,我仍然希望保留爲https的頁面句柄。爲了舉例,假設我想將page1.php,page2.php和page3.php保留爲.https,並將網站上的所有內容重定向。有人知道怎麼做嗎?

回答

0

嘗試這樣:

RewriteEngine On 

# Force page1,2,3.php onto HTTPS 
RewriteCond %{HTTPS} off 
RewriteRule ^(page1|page2|page3)\.php https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA] 

# Redirect other HTTPS requests to plain HTTP 
RewriteCond %{HTTPS} on 
RewriteCond ${REQUEST_URI} !(page1|page2|page3)\.php 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA] 
+0

對不起,我這個總的新秀。這是否取代我的3重定向規則?一切都必須按特殊順序進行嗎?你能創建一個完整的.htaccess來總結一切嗎?提前致謝! – Ryan 2011-03-23 19:31:44

+0

考慮以上是以正確的順序完整的.htaccess。頂部的塊用一個正則表達式替換你的三個謹慎的規則。我還爲重定向標誌添加了'QSA'來傳遞任何查詢字符串。 – 2011-03-23 19:49:55

+0

這似乎會導致頁面1,頁面2和頁面3的無限循環。 – Ryan 2011-03-24 10:00:55