2012-01-07 92 views
0

我在嘗試將傳入的請求重定向到https://www.domain.com/和全部https://www.domain.com/ {所有頁面}並且沒有什麼問題。方法我試過:Apache force SSL

  1. 添加此行:Redirect permanent/https://www.domain.com/httpd.conf引起太多的重定向

  2. 使用的.htaccess mod_rewrite的與在302頁感動帶着一顆破碎的鏈接結束重定向。

我要的是:

  1. 重定向所有請求HTTPS://www.domain.com/,包括HTTP://www.domain.com/signup和這樣的網頁,以HTTPS版本

我搜索這個很多線程,但他們似乎並不適用於我的設置。我應該如何處理這個問題?

回答

1

它是這樣:

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

來源:http://systembash.com/content/force-https-ssl-access-url-apache/

+0

這是我有什麼$ 1中。它僅適用於hxxp://www.domain.com/。如果您轉到hxxp://www.domain.com/account/(在我的情況下,它是/ var/www/account的Apache別名),它不會更改URL。 – tmrhmdv 2012-01-07 20:17:16

4

有這種方法明顯的問題 - 如果你做一個自動非SSL重定向到SSL網頁,你就失去了安全性的SSL應該提供。即如果某人可以MITM您的非SSL Web服務器,他們可以重定向到他們自己的有效SSL服務器(帶有真實證書),並且瀏覽器不會知道其中的差別。

http://www.example.com重定向到https://www.example.com,可以通過一箇中間人攻擊,其中假http://www.example.com重定向到https://i-will-steal-your-credit-card.com被顛覆,只要i-will-steal-your-creditcard.com有一個有效的證書,贏得了瀏覽器不會提醒用戶有任何錯誤,用戶會看到小鎖圖標,並認爲一切都很酷,並開始放入信用卡號碼。

最好有一個頁面來解釋他們真正想要的是URL的SSL版本和可點擊鏈接。當然,壞人可以做同樣的事情,但偏執狂的人總是確認他們點擊的鏈接實際上與其所說的鏈接有關。當然,大多數人並不是偏執狂,並且會對額外的步驟感到憤怒 - 所以如果你有任何市場營銷人員對你的上游做出決定 - 你最終會這樣做http-> https自動重定向。這是因爲市場營銷和客戶通常不瞭解SSL。

0
RewriteEngine On 
RewriteCond  %{HTTPS} Off 
RewriteRule  ^(.*)$  https://%{HTTP_HOST}$1 [R,L] 

通知其追加的路徑信息