博客最常用了,先迁移这个

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;

现在可以了


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。