将 WordPress 中的 HTTP:// 替换为 HTTPS://

Nil*_*les 4 mysql wordpress ssl https phpmyadmin

随着谷歌越来越挑剔左右HTTPS的网站,我希望能够做一个快速简便的SQL查询来搜索和替换什么http://https://

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

UPDATE wp_posts SET guid = replace(guid, 'http://www.oldurl','http://www.newurl');
Run Code Online (Sandbox Code Playgroud)

所以我试着做类似的事情

UPDATE `wp_commentmeta` SET 'meta_value' = REPLACE(`meta_value`, 'http://', 'https://');
Run Code Online (Sandbox Code Playgroud)

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


  • 我在 SOF 上尝试了一些选项,但都没有奏效。
  • 我宁愿不必安装插件作为“修复”

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

Fri*_*its 8

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

RewriteEngine on

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

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

如果您想更彻底地替换 SQL,您通常可以postsguid列(特色图像)和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');
Run Code Online (Sandbox Code Playgroud)