大约2个月前,我在我的网站catherinerushforth.com上安装了SSL证书。我更改了WordPress管理区域中的网站和WordPress URL,以包含https://而不是http://。一切都很好。
然后,大约2个星期前,我开始对#34;混合内容"除主要主页外的所有页面上的错误。使用Safari查看网站时似乎不会出现问题,但Chrome,Firefox和Internet Explorer存在问题。我在Chrome中检查了Javascript控制台(作为示例)并看到了多个"混合内容"错误
这是我到目前为止尝试修复这些混合内容错误的方法:
在WordPress管理部分中将http://更改为https://,用于网站和WordPress网址(设置/常规)
我已添加" define(' FORCE_SSL_ADMIN',true);"到wp-config.php文件的顶部。
我已将以下代码添加到.htaccess文件中:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^catherinerushforth.com [NC]
RewriteRule ^(.*)$ https://catherinerushforth.com/$1 [L,R=301]
使用此代码,我得到了#34; ERR_TOO_MANY_REDIRECTS"
我也尝试过插件,WordPress HTTPS(SSL)。
以上都没有奏效。
有谁知道我做错了什么和/或对如何解决这个问题有任何建议?
非常感谢。
WordPress版本:4.2.2 主题:X-theme v.4(虽然问题与此主题的早期版本相同) 网站:catherinerushforth.com
更新 如果我只是为我的网站重新构建每个页面(由于X-Theme现在使用他们的CornerStone页面构建器,我可能必须在某些时候这样做)这样可以确保所有链接都是https://而不是http://?< / p>
答案 0 :(得分:2)
删除
define('FORCE_SSL_ADMIN', true);
来自wp-config.php,请确保您已在WordPress管理员中将http://
更改为https://
,然后在.htaccess 上面强制使用前端和后端的SSL WordPress重写块:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://catherinerushforth.com/$1 [R=301,L]
这只会迫使SSL;您仍然需要找到加载非SSL的站点资源。
因此,请使用Firefox(或Firebug)或Chrome或Safari或IE中的开发者工具查看特定网站资源的错误。< / p>
并强>
•您应将帖子/页面内容中的媒体项目和链接的URL更改为https,以便它们不依赖于.htaccess中的重定向。 Search RegEx是一个很好的插件,可以通过所有帖子,页面,摘录,评论,标题和元搜索和替换(可选择使用grep)。并且,interconnectit.com WordPress Serialized PHP Search Replace Tool可用于在整个数据库中查找/替换,即元数据,GUID和小部件内容等。
•您可能需要更改为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。
答案 1 :(得分:0)
RewriteEngine On
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
答案 2 :(得分:0)
所以我在图片网址上将此问题作为http://https://website.com/image.jpg
返回。我所做的是使用Velvet URL插件重写从http://https://websiteurl
到https://websiteurl
的所有内容的网址。这为我解决了这个问题。干杯
答案 3 :(得分: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安装了非常简单的ssl插件,它就像魅力一样。