【问题标题】:Replace HTTP:// to HTTPS:// in WordPress在 WordPress 中将 HTTP:// 替换为 HTTPS://
【发布时间】:2018-12-15 09:23:39
【问题描述】:

随着 Google 对网站上的 HTTPS 越来越挑剔,我希望能够做一个快速简单的 SQL 查询来搜索和替换任何 http://https://

我通常会为移动主机执行以下操作:

UPDATE wp_posts SET guid = replace(guid, 'http://www.oldurl','http://www.newurl');

所以我尝试做类似的事情

UPDATE `wp_commentmeta` SET 'meta_value' = REPLACE(`meta_value`, 'http://', 'https://');

但它似乎不起作用。无论如何要一次完成整个数据库?


  • 我在 S.O.F. 上尝试了几个选项,但效果不佳。
  • 我不想安装插件作为“修复”

如果有 mySQL 或 htaccess 脚本,我对那些解决方案更感兴趣。

【问题讨论】:

    标签: mysql wordpress ssl https phpmyadmin


    【解决方案1】:

    您可以试试这个免费的 Wordpress 插件: https://wordpress.org/plugins/better-search-replace/

    还可以查看这篇文章以了解其他方式: https://kinsta.com/knowledgebase/wordpress-search-and-replace/

    请注意,您不应根据https://wordpress.org/support/article/changing-the-site-url/#important-guid-note 替换 GUID:

    第二部分是 GUID 不能更改。即使您转移域,帖子仍然是相同的帖子,即使在新位置也是如此。当您更改 URL 时,被转移到您的新提要的提要阅读器应该仍然知道他们之前已经阅读过您的一些帖子,因此 GUID 必须保持不变。

    【讨论】:

      【解决方案2】:

      如果您有权编辑您的 .htaccess 文件,您可以在其中添加以下内容:

      RewriteEngine on
      
      # force SSL
      RewriteCond     %{SERVER_PORT} ^80$
      RewriteRule     ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
      

      上面的代码将使用 301(永久)重定向,如果不想使用 301 重定向,您只需将最后一行的最后一部分从 [L,R=301] 更改为 [L,R]

      如果您想更彻底地替换 SQL,您通常可以在 posts 表内的 guid 列(特色图片)和 post_content 列(反向链接等)中找到所有必要的链接)。然后当然也在 post_meta 表内 - meta_value 列和 home/siteurl 在你的 options 表内。这是我通常使用的 SQL 查询:

      UPDATE wp_options SET option_value = replace(option_value, 'http://example.com', 'https://example.com') WHERE option_name = 'home' OR option_name = 'siteurl';
      UPDATE wp_posts SET guid = REPLACE (guid, 'http://example.com', 'https://example.com');
      UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://example.com', 'https://example.com');
      UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://example.com','https://example.com');
      

      【讨论】:

      • 第二部分是 GUID 不能更改。即使您转移域,帖子仍然是相同的帖子,即使在新位置也是如此。当您更改 URL 时,被转移到您的新提要的提要阅读器应该仍然知道他们之前已经阅读过您的一些帖子,因此 GUID 必须保持不变。 wordpress.org/support/article/changing-the-site-url/…
      • @GeorgeBirbilis 你没有错,但是你没有考虑过预生产。例如,我使用/构建的大多数网站都托管在预生产 URL 上。因此,读者已被阻止,尚未阅读任何内容。移动到实时 URL,您绝对应该更改 GUID。如果您的站点结构已更改,GUID 应保持不变,但如果您的 FQDN 已更改,则 GUID 也必须更改。
      • 我特别指的是“mysubdomain.mypreproductionserver.com”更改为“mylivedomain.com”网址。
      • 实际上,如果站点是基于模板的,那么更改它们不会有什么坏处,但是根据文档,当将站点移动到其他域(或只是移动到 https)时,不应该触及那些。根据该文档提要阅读器将它们用作键,并且可能不够聪明以适应用户切换提要网址并将所有较旧/已阅读的帖子再次显示为未读
      【解决方案3】:

      您可以尝试使用 Interconnect/it 中的 WP CLISearch Replace DB

      如果你使用后者,你可以在替换 URL 后删除文件夹。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-28
        • 2011-07-14
        • 2019-05-20
        • 2015-12-07
        • 2020-11-18
        • 2018-03-08
        相关资源
        最近更新 更多