2016-08-31 106 views
1

我試圖重定向到一個安全的非www網址的所有請求。但是當我訪問https://www時,我的代碼無法重定向。這是唯一不工作的網址,任何人都可以幫我找出爲什麼https://www沒有按計劃重定向?這裏是我的代碼:SSL WWW未能重定向

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    Options +FollowSymlinks 

    RewriteCond %{HTTPS} =on 
    RewriteRule^- [env=proto:https] 
    RewriteCond %{HTTPS} !=on 
    RewriteRule^- [env=proto:http] 

    RewriteCond %{HTTPS} !=on 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
    RewriteRule^%{ENV:PROTO}://%1%{REQUEST_URI} [R=301,L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php [QSA,L] 
</IfModule> 

我正在使用Flight php進行路由。

回答

0

你添加一個contition,以確保您的網址重寫,WWW。只對非SSL請求有效。

刪除的RewriteCond%{} HTTPS!=上

+0

我仍然得到:「這個網站無法提供安全連接」。我想我是從這個字符串中刪除它!'的RewriteCond%{} HTTPS = ON 的RewriteCond%{HTTP_HOST}^WWW \(。+)$ [NC] 重寫規則^%{ENV:PROTO}:// %1%{REQUEST_URI} [R = 301,L]'。感謝您的回答。 –

+0

「我還在......」?你沒有說什麼你得到什麼。你說你的'https:// www'沒有被重定向,我告訴過你,重寫是原因。去掉它!你現在說的話聽起來像是一個瀏覽器抱怨一個CA,這與重定向沒有任何關係,這將在SSL已經被協商後發生。 如果您想避免爲www提供無效證書。你不能。但這是一個不同於重定向的問題。 –

+0

很抱歉誤會,但是證書對於www有效。我正試圖在https上實現將https www重定向到非www。由於這是唯一不支持我當前的.htaccess安裝的協議。 –

0

有可能是錯誤配置SSL的問題,因爲你沒有得到重定向錯誤。由於某些原因,錯誤「此站點無法提供安全連接」可能會中斷。讓我在下面一一解釋:

  • SSL證書不是來自可信CA(自簽名)。
  • SSL證書已過期。
  • SSL錯誤配置也會提示此類錯誤消息。
  • 計算機的時間和日期不正確。
  • 您可能正在使用舊/不安全版本的SSL證書(SHA1)。
  • 使用舊的網絡瀏覽器。

我建議你檢查上面提到的觀點。

建議:

  • 獲取來自受信任的證書頒發機構,其根鏈條已處於領先的網絡瀏覽器(即Comodo或Symantec)有效證書。
  • 續訂您的SSL證書。
  • 檢查您的網站在SSL checker tool
  • 使時間和日期完美。
  • 如果您使用的是舊版SSL證書,請要求您的SSL提供商重新簽發該證書。
  • 讓您的瀏覽器保持最新狀態。

希望這些信息將幫助你解決你的問題。