2010-05-25 30 views
1

我對這個問題有困惑。用下面的代碼我能夠強迫任何非SSL URL SSL,但是當用戶(和結果來自谷歌)將用戶引導至http://mysite.co.za然後我們打一個問題,因爲該URL,然後重寫https://mysite.co.za使用.htaccess&mod_rewrite將「www」預先掛載到HTTPS網址

由於事實上,我的證書綁定到www.mysite.co.za它會立即拋出一個安全錯誤,因爲URL中缺少'www'。

有人能指出一種方法,當域名以HTTPS開頭而不是HTTP時,將www添加到域名?

非常感謝。

而且目前的代碼添加https://開頭如下:

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
+1

即使使用重定向,您總是會有至少一個警告。這是因爲瀏覽器在服務器到達重定向點之前檢查SSL證書 – Gareth 2010-05-25 07:09:03

+1

重定向到www然後重定向到HTTPS。 – 2010-05-25 07:26:56

+0

@Kerry:或直接轉到「https:// www.mysite.co.za /」。 – 2010-05-25 11:44:41

回答

1

有人能指出一條生路給WWW添加到域時域與啓動HTTPS而不是HTTP ?

所以,你要這樣:

  • 如果主機不以www開始:
    • 如果連接是安全的,什麼也不做。在這種情況下,無論如何你都已經搞砸了,因爲用戶已經看到了主機不匹配的警告。
    • 如果連接是不安全的重定向到https://www.% {HTTP_HOST}%{REQUEST_URI}

您當前的規則:

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

這條規則對你失敗,因爲它增加了WWW不管連接是否安全。另外,它保持http原樣(不轉發https://)。上述

滿足您的要求的規則是

#if the host does not start with www. 
RewriteCond %{HTTP_HOST} !^www\. 
#and the connection is not secure 
RewriteCond %{HTTPS} ="" 
#forward 
RewriteRule^https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301] 

L標記是不必要的,因爲重定向結束該重寫。

+0

之前。感謝Artefacto,這段代碼爲我清除了一些煙霧,但要清楚我有另一個.htaccess文件存在於非SSL目錄中重定向到https沒有問題,即使www被遺漏了,它也會預先安排它並將用戶發送到安全站點。這個問題仍然存在於安全目錄中。 您是否告訴我,如果用戶登錄https://mysite.co.za,因爲瀏覽器在應用規則之前檢查了證書,所以沒有多少重寫規則可以將www前綴添加到url中?我需要知道是否唯一的解決方案是有兩個SSL證書? – SimonDowdles 2010-05-26 06:52:42

+0

如果用戶轉到https://mysite.co.za,則在用戶發送他請求的主機名之前將顯示證書,所以apache無法決定要發送的證書。您不僅需要另一個證書,還需要另一個IP地址。但是,您可以獲得對mysite.co.za和www.mysite.co.za均有效的證書。大多數當前的Web瀏覽器都支持這些證書。 – Artefacto 2010-05-26 10:42:11

+0

當然,您可以擁有兩個證書,一個用於mysite.co.za,一個用於www.mysite.co.za,理論上這兩個證書是兩個不同的域名。您不需要擁有一個支持這兩個域的通用證書。 – SimonDowdles 2010-05-26 13:00:14

0

這不回答你的問題,但它肯定是解決問題的方式:從Digicert

SSL證書在默認情況下保護雙方WWW和同一個域的非WWW變種。我不知道有任何其他主流證書頒發機構會這樣做 - Digicert SSL Plus

+0

非常感謝,但客戶剛剛在一個月前購買了新的Thawte證書。除了我不確定'Digicert'的聲望是什麼?還有其他的選擇,Thawte提供了一個'Web服務器'證書,您可以在證書上添加一個域名變體,而成本只是新證書的一小部分。這只是一個賺錢的大錢!感謝您的建議,但是,他們不會被忽視。 – SimonDowdles 2010-05-26 07:34:52

+0

夠公平的,如果你剛剛購買了新的證書(可能會有寬限期),這很困難。如果你能聽取我的意見(我不爲他們工作,我只是一個webdev),Digicert是非常出色的。它們在所有網絡瀏覽器中都得到支持,它們只是Thawte/Verisign價格的一小部分,而且它們在世界上得到了最好的支持(我從來沒有在現場無法回答的問題實時聊天,他們給我發了一封帶有手寫信的T恤trans-Atlantic,只是因爲我們的一位客戶在推特上推薦他們給他)。 – Gareth 2010-05-26 15:14:21

相關問題