2015-02-06 187 views
3

我看過很多關於重寫的文章。都好。但是沒有一個涵蓋這種確切的情況所以這是我的問題:希望你能幫助。因爲我無法讓它工作。重定向http => https(非www)+ www https =>非www https(沒有www的證書)

  • 我們運行domain.com網站(無www)
  • 我們SSL設置(所以只有HTTPS)
  • 我們對非www版本(沒有WWW版本)1個證書

當我們執行所有四個測試的情況下,3行,1不

  1. http://domain.com =>https://domain.com =>
  2. http://www.domain.com =>https://domain.com => OK
  3. https://domain.com =>行
  4. https://www.domain.com => ERROR。證書警告不安全

問題:現在爲什麼給我這個錯誤號4 https://www。我期望第一條規則可以提取並將我們發送到非www版本。我該如何解決這個問題?

感謝所有幫助,P肖恩


這是我當期的htaccess的

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    # Redirect www to non-www first 
    # Added based on article http://stackoverflow.com/questions/234723/generic-htaccess-redirect-www-to-non-www 
    RewriteCond %{HTTP_HOST} ^www\.(.+) [NC] 
    RewriteRule ^(.*) https://%1/$1 [R=301,NE,L] 

    # Then redirect http to https (if necessary) 
    RewriteCond %{HTTPS} !=on 
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L] 
</IfModule> 
+0

你需要一個通配符證書,但我會幫你在這裏。嘗試刪除''和''並告訴我,如果你得到任何錯誤500. – 2015-02-06 09:44:56

+0

沒有錯誤=>工程 – 2015-02-06 09:46:31

+0

問題是這已經是一個多域證書,所以這意味着我將不得不添加每個www。版本的所有域分開?我不知道任何通配符多域證書 – 2015-02-06 09:47:23

回答

0

這是不可能通過htaccess或nginx conf來解決。

人們需要一個證書覆蓋www和域

所以非www的通配符證書,或其中兩個www和非WWW被作爲一個單獨的域

希望它多域證書幫助

2

你可以在你的.htaccess使用:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    # Redirect www to non-www first 
    RewriteCond %{HTTP_HOST} ^www\.(.+) [NC] 
    RewriteRule ^(.*) https://%1/$1 [R=301,NE,L] 

    # Then redirect http to https (if necessary) 
    RewriteCond %{HTTPS} off 
    RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301] 
</IfModule> 

但沒有什麼可以做證書錯誤。
閱讀:Redirecting https://www to https://non-www - without seeing certificate error, possible?

相關問題