博客最常用了,先迁移这个
nginx修改
首先添加代理

然后输入域名,本地的ip+端口

然后点击Custom locations
填写本地ip+端口

还有规则
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Custom-Header "8000";
其中 最后一个是我自己写的,也可以不要,主要是为了传递到博客那边 含义是https的端口号 自己修改的话,只能修改"8000" 不能修改 前面的
然后SLL 中修改如下,记得不能勾Fore SSL ,勾选了会无法http跳转,这个保留http是因为 之前在别的地方留的地址是 http的 还得保留.

最后一个,添加http自动301跳转
if ($scheme = http) {
return 301 https://$host:8000$request_uri;
}

然后nginx这边修改就完了
wordpress修改
打开wp-config.php文件
然后将下面代码放到最上面
$host = $_SERVER['HTTP_HOST'] ?? 'localhost';
$uri = $_SERVER['REQUEST_URI'] ?? '/';
$port = $_SERVER['HTTP_X_CUSTOM_HEADER'] ?? '';
if($port != '')
{
$port = ':'.$port;
}
if (strpos($host, 'blog.mxguanwang.cn') !== false)
{
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
// 避免无限重定向
if (preg_match('#^/wp-*#', $uri))
{
// 登录相关,带端口
define('WP_HOME', 'https://' . $host . $port);
define('WP_SITEURL', 'https://' . $host . $port);
}
else
{
// 普通访问,不带端口
define('WP_HOME', 'https://' . $host);
define('WP_SITEURL', 'https://' . $host);
}
}
else
{
define('WP_HOME', 'http://' . $host);
define('WP_SITEURL', 'http://' . $host);
}
如下图所示

还有就是注意后面不能有同样的,不然会覆盖掉

主要逻辑就是根据域名进行判断,如果是本地通过ip访问,就什么都不修改,如果是通过域名访问的,则修改为https访问
剩下的是因为有个特殊情况,如果不加上端口号,后台会丢失端口号,导致无法登录,因为wp-login.php中的代码是这么写的,这里面没有考虑端口号的事情

但是如果都加上端口号,首页又会无限301跳转,没有找到原因.
所以就加个条件进行判断就没问题了.至此就全部迁移完毕,都没有问题了
然后打开博客,发现有好多加载失败的

逐个解决问题
解决cdn错误
感觉现在已经不需要cdn了,已经有公网ip了
首先打开后台,搜索并安装插件 Better Search Replace

安装完毕,然后点击启用

然后从工具进入
全选所有表,勾选不匹配大小写和预览 先搜索一下试试看

结果没找到,看来是规则有问题

去数据库看了一下 没问题,取消预览,直接执行
发现还是有报错,这个应该是代码写死的,需要去修改代码

批量替换掉原本写死的代码
兼容原来的域名
忽然想起来,之前知乎等留的链接都是http://fast_mxblog.mxguanwang.cn:7000/ 这样的
还得让转过来,现在是域名还有端口都变化了,不能简单的通过301直接跳转了,需要加个规则
首先原本的域名得保持还能用.
然后Nginx Proxy Manager中点击“Hosts” > “Redirection Hosts”

添加

然后依次填入原来的域名,需要转发的地址,选择301永久转移

可以看到,可以正常访问了

然后发现跳转会丢失参数,导致直接跳转到主页,这个方案不行.
还是得添加代理
填写需要转发的域名,其他信息随便写,反正也不用.

填入下面代码,无条件301到新的地址
return 301 https://blog.mxguanwang.cn:8000$request_uri;

现在可以了










Comments | NOTHING