如何正确切换WordPress URL?测试站URL切换后网站显示不安全怎么办?
嘿,这两个问题都是WordPress折腾URL时的高频坑,我来给你捋清楚靠谱的解决步骤:
1. 如何正确切换WordPress的URL?
我一般推荐几种稳妥的方式,你根据自己的操作场景选就行:
后台直接修改(最省心,适合能正常登录后台的情况)
登录WordPress后台,找到「设置」→「常规」,在「WordPress地址(URL)」和「站点地址(URL)」里填入新的完整URL(比如https://www.hello.com),点击保存就搞定。要是修改后跳回旧地址或者登不上后台,就换下面的方法。修改wp-config.php(无需登录后台,适合紧急情况)
通过FTP工具或者主机控制面板的文件管理器,找到网站根目录的wp-config.php文件,在/* That's all, stop editing! Happy publishing. */这行之前添加两行代码:define('WP_HOME','https://www.hello.com'); define('WP_SITEURL','https://www.hello.com');替换成你的新URL,保存后网站就会直接用这个新地址,后台设置会被覆盖。
数据库全局替换(适合整站迁移或链接残留的情况)
要是上面两种方法后还有旧URL残留,就直接改数据库:- 登录主机的phpMyAdmin,找到你的WordPress数据库。
- 执行以下SQL命令(记得把
wp_换成你的数据库表前缀,旧URL和新URL要准确):UPDATE wp_options SET option_value = replace(option_value, 'https://www.hello.com/testing', 'https://www.hello.com') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET post_content = replace(post_content, 'https://www.hello.com/testing', 'https://www.hello.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value, 'https://www.hello.com/testing', 'https://www.hello.com');
最后必做:刷新固定链接
不管用哪种方法改完URL,都要去后台「设置」→「固定链接」,啥都不用改,直接点「保存更改」,让WordPress更新链接规则,避免出现404错误。
2. 切换URL后网站显示不安全的解决方法
这个问题90%都是HTTPS配置不完整或者混合内容导致的,按下面步骤排查:
先确认SSL证书是否正常
访问新URL时,看浏览器地址栏的锁图标:如果是红色叉号,大概率是SSL证书没装对、过期或者域名不匹配,直接联系你的主机商确认证书是否正确部署到www.hello.com上。强制全站HTTPS
在wp-config.php里添加代码,强制后台和前台都用HTTPS:define('FORCE_SSL_ADMIN', true); if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS'] = 'on';清理混合内容(核心解决步骤)
很多时候显示不安全,是因为页面里的图片、脚本、样式还在用旧的HTTP链接(或者旧的子目录HTTP链接),导致混合内容警告。可以用数据库替换一次性搞定:UPDATE wp_posts SET post_content = replace(post_content, 'http://www.hello.com/testing', 'https://www.hello.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://www.hello.com/testing', 'https://www.hello.com'); UPDATE wp_options SET option_value = replace(option_value, 'http://www.hello.com/testing', 'https://www.hello.com');要是怕手动写SQL出错,也可以用后台插件(比如Really Simple SSL)自动扫描并替换所有HTTP资源,一键修复混合内容问题。
添加HTTPS跳转规则
在网站根目录的.htaccess文件里添加重写规则,强制所有HTTP请求跳转到HTTPS:RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]这样用户不管输HTTP还是HTTPS,都会自动跳转到安全的HTTPS链接。
最后清缓存
清空浏览器缓存,还有网站的缓存插件(比如WP Rocket、W3 Total Cache)的缓存,不然浏览器可能还会加载旧的资源,导致警告不消失。
内容的提问来源于stack exchange,提问作者lee yowmin

