使用SSL导致混合内容的图像

时间:2015-04-24 作者:user1048676

我正在尝试在我的登录页面上使用SSL,但我在这个页面上有一些图像,它看起来也像是加载了谷歌字体API,所以它并不是说这个页面是安全的。

我尝试使用以下方式强制SSL:

define(\'FORCE_SSL_ADMIN\', true);

然而,我仍然得到混合的内容。我还尝试将我的站点和主页URL更新为https而不是HTTP,但仍然得到了混合内容。我甚至安装了WordPress HTTPS插件,但内容仍然很复杂。

2 个回复
SO网友:markratledge

使用中的开发人员工具Firefox (或Firebug) 或ChromeSafariIE 查看特定图像的错误。

1) 您可能需要将帖子/页面内容中媒体项目的URL更改为https。Search RegEx 是一个很好的插件,可以通过所有帖子、页面、摘录、评论、标题和元数据进行搜索和替换(可以选择使用grep)。和interconnectit.com WordPress Serialized PHP Search Replace Tool 可用于在整个数据库中查找/替换,即元数据、GUI和小部件内容等。

2) 您可能需要更改CSS文件中图像的相对路径,即。background-image: url(http://example.com/themes/wp-content/theme/images/image.jpg)background-image: url(images/image.jpg)

3) 您可能需要删除http 来自php主题文件中的绝对路径,即更改\'http://example.com/image.jpg\'\'//example.com/image.jpg\'; 这将允许您的资源默认为https。

SO网友:Bryan \'BJ\' Hoffpauir Jr.

最终的答案取决于您的帖子中尚未明确的几个因素,但这些是您想要解决的一些具体问题(参考我在网站管理员StackExchange上提交的一个类似问题的答案:

您是否在WP Admin中转到“设置”>“常规”,并将WordPress地址和网站地址更改为https?这是您至少需要采取的第一个步骤,以确保帖子在显示时使用正确的基本url。

你没有提到你是如何实现301重定向的(如果你想强制使用http-https的话),但这里有一个过去对我有用的例子:


<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{SERVER_PORT} 80 
   RewriteRule ^(.*)$ https://www.yoursite.com/$1 [R,L]
</IfModule>
我建议手动配置它,而不是使用webhost工具,因为它可以让您更好地控制想要实施的确切行为。此外,如果要强制WP Admin或用户登录页面使用SSL,则需要更新WP config。php并在“全部停止编辑行”上方添加此指令:

define(\'FORCE_SSL_ADMIN\', true);

interconnectit.com WordPress Serialized PHP Search Replace Tool - 它将梳理您的数据库,并允许您替换存储在WP用于存储不同类型内容的各种表中的序列化数据。

您的网站是否使用第三方主题?他们中的许多人使用绝对URL和相对URL来嵌入指向CSS的链接;JS文件,甚至只是作为基本URL设置,任何这些都可能会妨碍您使用https获取所有资产的能力。您应该审核主题的PHP文件,以检查它们用于生成基本URL的方法,以及它们如何嵌入指向CSS文件或JS包含的资源的链接。Elegant Themes, one of the more popular WP Theme developers, offered this guide, 建议使用自定义代码或插件。

您是否使用可能影响WordPress使用的媒体资产、帖子或其他页面的任何第三方插件?WooCommerce之所以会出现,是因为它对如何处理http和https有特定的设置,这些设置可能会覆盖您在上面第1部分中设置的站点范围的设置。This discussion on StackOverflow has some good info on this topic.

您是否使用反向代理/SSL卸载/负载平衡器/CDN服务,如Amazon Web Services ELBCloudFlare? 如果是,他们对SSL的设置将影响他们为最终用户提供内容的方式。CloudFlare has a specific set of instructions 如何使用灵活的SSL配置,以及some users report having to add a a little bit of custom code to get the expected behavior 在负载平衡器之后托管时。The official documentation also provides a guide on addressing this issue, 尽管您可能需要在apache vhost文件中编辑一些代码或修改指令,以使HTTPS协议转发正常工作,但无论您使用的是哪家供应商。

大多数人建议使用第三方插件来处理以上所有问题,而无需进行太多故障排除或编程,尽管我自己从未使用过任何插件,因此无法直接推荐一个插件与另一个插件。WordPress HTTPS 看起来很受欢迎easy-to-follow guide on how to leverage it\'s features that you may find handy. 不过,它已经有一段时间没有更新了,所以我不确定我会推荐它,除非你不能让其他人工作。

此外,您选择的插件可能取决于谁托管您的站点(here\'s one from HostGator with instructions on setup and troubleshooting) 现在您是否在设置中使用了CLoudFlare或负载平衡器等任何系统。Here\'s a list of the ones I found on the Codex.

您还可以发现this WP Beginners blog post 这是一个有用的资源,用于介绍在WordPress站点上使用SSL的关键概念,其中包含大量优秀的图表和支持性参考,以便您更好地理解为什么要正确工作有点复杂。

让我知道哪些选项最适合您!

结束

相关推荐

无法升级到4.0-获取SSL证书错误

我不是开发人员。我有一个博客。我不懂代码。我正在尝试将我的站点从3.5.1版本更新到4.0版本,但不断收到SSL证书错误。我的托管服务提供商告诉我,这是Wordpress错误,他们无法提供帮助,除非建议解决方法。然后,我按要求添加了以下行以进行更新,但随后在我的仪表板上收到了一个新错误:无法复制文件。请帮助我使我的网站重新联机。现在是一个空白屏幕。