在HTTPS POST中加载带有Http URL的图像

时间:2016-08-10 作者:Janith Chinthana

我有一个存档页,它运行在https. 它不会像所有图像URL那样在帖子中加载任何图像http.

它给出了一个像bellow这样的错误,

Blocked loading mixed active content "http://www.example.com/wp-content/uploads/image.jpg"
我应该如何避免这些错误并在该页面上加载图像。

我在一篇文章中看到了通过将URL转换为相对URL来修复它的最简单方法。

例如:

http://www.example.com/wp-content/uploads/image.jpg -> //wp-content/uploads/image.jpg
你知道我该怎么做吗?

5 个回复
最合适的回答,由SO网友:Janith Chinthana 整理而成

仅使用str_replace 函数将URL转换为https

$content = get_the_content();
$content = apply_filters( \'the_content\', $content );
$content = str_replace( \']]>\', \']]>\', $content );
$content = str_replace("http://example.com/", "https://example.com/", $content);
echo $content;
事件,您可以通过这种方式创建相对URL。

SO网友:KnightHawk

有一个名为Search and Replace (WordPress.org codex中推荐)您可以使用它来安全地编辑数据库以进行此类更改。是否选择使用协议相对链接//wp-content/... 或将所有内容更改为https 防止混合内容仍然是您的选择。

The reason for this tool, rather than the easier SQL replace is that data is serialized in the WordPress database and if not taken care of properly can/will be destroyed.

在使用之前,请始终备份数据库。该工具还提供了运行试运行的选项,以便您可以在实际执行任务之前查看哪些表将受到影响。我个人建议试运行(出于明显的原因),然后写下受影响的表格。从这里开始,如果您的服务器速度不是特别快,那么明智的做法是一次只选择少量表进行更改,这样进程就不会挂起或失败。写下受影响的表意味着您可以在实时运行中完全跳过未受影响的表。

这不是没有风险的,但如果做得好can 在实时站点上运行此操作。由于您将要将有效但不是100%接受的链接更改为有效且100%接受的链接,因此只要您不给站点太大的工作负载,该过程就不会对其产生负面影响<此外,在一个实时站点上犯错误是很糟糕的,所以不要犯这些错误。

如果你有一个建筑区域要使用,那么绝对要使用它。但如果不是,我是说is 可以在实时站点上运行此工具,而不会出现任何问题。但这绝非易事。我经常使用这个工具从建筑(等)中移动站点,如果这是你第一次。。。期待麻烦,总是做最坏的打算。备份并准备好。

Note on version 2.? vs 3.?:

如果您的服务器较旧,那么版本2很可能适合您。如果您的服务器较新,请尝试版本3。它们都很容易使用,但如果您的服务器接受v3,那么就使用它,它会更新,并且在一个页面上完成所有事情,这会使事情变得更加方便。尝试试用版本3,您应该知道您的服务器是否可以运行该版本,或者是否需要使用旧版本2。

BIG NOTE:

工具应该让你知道,DO NOT 一旦使用完毕,请忘记将其删除。你不想让任何邪恶角色利用这个漏洞。

SO网友:Ethan O\'Sullivan

当您将WordPress站点的URL从HTTP更新为HTTPS或迁移到新域时,这是一个相当常见的问题。部分解决方案是在您的设置中更新WordPress的主页和网站URL:

enter image description here

这并不意味着你帖子中的新URL结构将被修复。这会导致一些页面指向HTTP链接。

作为确保网站所有URL都是最新的快速解决方案,请使用以下SQL查询:

SQL查询

UPDATE wp_options SET option_value = replace(option_value, \'OLD_URL\', \'NEW_URL\') WHERE option_name = \'home\' OR option_name = \'siteurl\';
UPDATE wp_posts SET guid = replace(guid, \'OLD_URL\',\'NEW_URL\');
UPDATE wp_posts SET post_content = replace(post_content, \'OLD_URL\', \'NEW_URL\');
UPDATE wp_postmeta SET meta_value = replace(meta_value,\'OLD_URL\',\'NEW_URL\');
  • OLD_URL 将替换为http://example.com (非HTTP)NEW_URL 将替换为https://example.com (HTTPS)
在执行此SQL查询之前,请确保备份数据库,以防遇到问题。

SO网友:Jean-philippe Emond

Do a backup before

我建议你做两件事:

First:

我们有3种可能更改您的内容,

永久性工具:this Search & replace for wordpress.<它并不优雅,可能会破坏你的网站,但我用了很多时间,效果也很好。

我认为它可以帮助您在一次拍摄中更改整个站点的数据库。

它不会将您的图像固定到插件中,但它可以提供帮助

临时工具:如果您不喜欢这样做,也可以使用免费的really-simple-ssl 它使用add\\u操作http更改您的内容=> https

临时工具:将其添加到函数中。php:

function change_http_into_content( $content ) { $custom_content = str_replace(\'http://\', \'https://\', $content ); return $custom_content; } add_filter( \'the_content\', \'change_http_into_content\' );

Second:

此外,不要忘记将URL更改为自定义JS、AJAX请求和其他插件。

SO网友:Amarendra Kumar

要使用http URL加载图像,请执行以下步骤:

转到phpmyadmin导出数据库SQL文件

  • 查找类似的URL“https://www.example.com/wp-content/uploads/image.jpg
  • 类似替换URL”http://www.example.com/wp-content/uploads/image.jpg
  • 保存文件并导入更新的SQL文件。
    1. 希望对您有所帮助。

    相关推荐

    升级到HTTPS后看似随机的文件超时(ERR_CONNECTION_RESET)

    我在托管主机(discountasp.net)上有一个WordPress网站,已经运行了几年。几天前,我通过安装SSL证书将托管站点升级为使用https(实际安装由discountasp.net完成)。作为故障排除的一部分,我已经升级到PHP 7.0和WordPress 5.6。现在,当加载任何WordPress页面时,包括管理员登录页面,我会在各种文件上随机超时。如果我查看Chrome开发工具,我会看到许多文件会立即加载,但会有一个或多个超时。在上面的示例中,文件是jquery。但是其他文件通常也无法加