2017-03-01 27 views
3

我正在使用Bluehost作爲我的一個網站。最近,最近,我已將我的網站從HTTP移至HTTPS。 之後,我使用了可能包含以下代碼的不同代碼來強制HTTPS遍佈我的網站。HTTP到HTTPS 301重定向代碼不起作用,它說太多的重定向

# SSL Rewrite 
RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] 

使用這個職位,當我檢查重定向消息檢查在線可用重定向後,我獲得以下消息。

但它不工作。太多的重定向。請儘量減少您的 重定向次數爲http://www.example.com。你使用19個重定向。 理想情況下,您不應該在重定向鏈中使用多於3個重定向。 三次以上的重定向會在您的服務器上產生不必要的負載,並降低速度,最終導致用戶體驗不佳。

,如果你想從瀏覽器訪問我的網站,我得到警告這樣:

的www.example.com頁面無法正常工作。 www.example.com重定向您 太多次了。

我認爲一些重定向循環正在產生這樣的問題。

然而,

我的網站的狀態現在:不使用上htaccess的

  1. 的https // www.example.com工作就好任何代碼。返回200 OK。 200 OK2

  2. 的https // example.com現在是301重定向到https // www.example.com(所以,我覺得也蠻好的)

的問題是:

  • HTTP // example.com現在301重定向到http // www.example.com
  • HTTP // WWW。 example.com返回200 OK。
  • 爲了解決問題3,我在我的htaccess包括下面的代碼

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^example\.com [NC] 
    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] 
    

    之後,我發現:

    HTTP // example.com現在301重定向到HTTPS // www.example。COM

    所以問題解決了:

    http//example.com 
    https//example.com 
    https//www.example.com 
    

    現在我只需要一些代碼來只能重定向301:

    HTTP // www.example.com到https // www.example.com`

    有人可以幫我嗎?

    如果我用有線方式解釋我的問題,我很抱歉......:D。問題是我不是這方面的專家。希望你們都明白。

    回答

    1

    試試這個:

    RewriteEngine On 
    
    # If not www 
    RewriteCond %{HTTP_HOST} !^www\. [NC] 
    # rewrite to https and www 
    RewriteRule^https://www.example.com%{REQUEST_URI} [R=301,L,NE] 
    
    # If not HTTPS 
    RewriteCond %{HTTP:X-Forwarded-Proto} !https 
    RewriteCond %{HTTPS} off 
    RewriteRule^https://www.example.com%{REQUEST_URI} [R=301,L,NE] 
    
    +0

    非常感謝您的回覆。但它不起作用! >第一個 它301從'http://www.example.com **重定向到** https:// www.example.com'。 之後,它 繼續重複導向 「https://www.example.com ** TO ** https:// www.example.com」大約20次。 –

    +0

    嘗試更新的答案 –