2015-05-30 178 views
0

大約2個月前我在我的網站catherinerushforth.com上安裝了SSL證書。我在WordPress的管理區域中更改了網站和WordPress網址,以包含https://而不是http://。一切都很好。混合內容 - SSL http/https問題

然後,大約2個星期前,除了主頁面之外,所有頁面上的「混合內容」錯誤都開始出現問題。使用Safari查看網站時似乎沒有問題,但Chrome,Firefox和Internet Explorer存在問題。我檢查在Chrome的JavaScript控制檯(作爲一個例子),看到多個「混合內容」的錯誤

這是我必須做的,到目前爲止,試圖解決這些混合內容錯誤:

  1. 改變HTTP ://到https://在WordPress管理部分爲WordPress網站和WordPress網址(設置/常規)

  2. 我已經添加了「define('FORCE_SSL_ADMIN',true);」到wp-config.php文件的頂部。

  3. 我已經添加了下面的一段代碼到.htaccess文件:

    RewriteEngine on 
    RewriteCond %{HTTP_HOST} ^catherinerushforth.com [NC] 
    RewriteRule ^(.*)$ https://catherinerushforth.com/$1 [L,R=301] 
    

    有了這個代碼,我得到 「ERR_TOO_MANY_REDIRECTS」

  4. 我也試過插件,WordPress的HTTPS (SSL)。

以上都沒有奏效。

有沒有人知道我在做什麼錯誤和/或有任何建議,我該如何解決這個問題?

非常感謝。

WordPress版本:4.2.2 主題:X-主題第4節(儘管問題是在以前的版本這個主題的相同) 網站:catherinerushforth.com

UPDATE 如果我簡單地重新制作我的網站的每個頁面(我可能需要做一些事情,因爲現在使用他們的CornerStone頁面構建器的X-Theme)會確保所有鏈接都是https://而不是http://?

+0

http://stackoverflow.com/a/37903102/3599237 – Akam

回答

0
RewriteEngine On 
RewriteCond %{HTTPS} !=on [NC] 
RewriteRule^https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 

Source

+0

謝謝拉斯爲您的快​​速反應和建議。這段代碼出現重定向錯誤。也許雖然它與我所做的另一件事有關,如上面我最初的問題。我是否需要使用網站特定的文本替換「服務器名稱」和/或「request_uri」? – spidermonkeydp

+0

不,這些是[變量](http://www.askapache.com/htaccess/mod_rewrite-variables-cheatsheet.html) –

+0

這不會阻止通過純HTTP進行初始連接(在重定向發生之前),所以混合內容錯誤將保留。 – Bruno

2

刪除

define('FORCE_SSL_ADMIN', true);

從WP-config.php文件,確保您在WordPress管理改爲http://https://,然後強制SSL的前部和後端與這在.htaccess 以上 WordPress重寫區塊:

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

這隻會強制SSL;您仍然需要找到加載非SSL的站點資源。

所以使用開發工具Firefox(或Firebug)或ChromeSafariIE查看與特定網站資源的錯誤。

和:

•您應該改變的在崗/頁內容爲https媒體項目和鏈接的網址,以便它們不依賴於在.htaccess重定向。 Search RegEx是一個很好的插件,可以通過所有文章,頁面,摘錄,評論,標題和元搜索和替換(可選用grep)。而且,interconnectit.com WordPress Serialized PHP Search Replace Tool可以用來查找/在整個數據庫代替,即元數據的GUID和Widget內容等

•您可能需要更改爲相對路徑圖像CSS文件,即background-image: url(http://example.com/themes/wp-content/theme/images/image.jpg)background-image: url(images/image.jpg)

•您可能需要從php主題文件中的絕對路徑中刪除http,即將'http://example.com/image.jpg'更改爲'//example.com/image.jpg';這將允許您的資源默認爲https。

+0

謝謝馬克。爲了確保我精確地遵循你的步驟,我是否在WordPress默認代碼「#BEGIN WordPress 」代碼中或其代碼之間添加了上面提供的「RewriteEngine On ...」代碼自己的「 ....在.htaccess中? – spidermonkeydp

+0

將它添加到#BEGIN WordPress塊的上面;它必須在WordPress規則之前執行,您不需要 ...,但取決於你的主機,你可能需要添加它 – markratledge

+0

感謝Mark清楚地解釋了代碼的放置位置,不幸的是,現在網站上的每個鏈接都指向了主頁catherinerushforth.com。使用和不使用 ....位 – spidermonkeydp

0

所以我有這個問題的形象URL被返回http://https://website.com/image.jpg。我所做的是使用Velvet URL插件來重寫網址爲http://https://websiteurlhttps://websiteurl的所有內容。這解決了我的問題。歡呼聲

0

使用ubuntu 16.04,letsencrypt,nginx,apache2,wordpress。對我來說

1. adding redirect in `/etc/apache2/sites-enabled/000-default.conf` didn't work (too many redirects) 

2. adding RewriteRule in .htaccess didn't work (too many redirects) 

最後我從wordpress安裝了really-simple-ssl插件,它像魅力一樣工作。