这几天想试试Nginx反代小皮面板之前搭建的网站,没想到反代出来网站访问不了,虽然GUI版本的建站软件很方便点点点就行了,但有些操作还是得手动配置才行,所以干脆从头开始配置然后把网站搬过去。

一开始确实挺成功的,Apache和Nginx都跑起来了,之前小皮面板那边的配置也在新的地方开启了,但电脑访问后网页是乱的控制台一堆报错手机上却正常显示,搜了好久才找到解决方法,在反代的配置里面加上

add_header Content-Security-Policy "upgrade-insecure-requests" always;

就行了,加这个的作用是它会告诉浏览器,在加载当前网页时,自动将所有不安全的 HTTP 请求升级为安全的 HTTPS 请求。 然后网上还有一个解决方法就是在wp-config.php文件里面找到 /* That's all, stop editing! Happy publishing. */ 这一行,然后在这行的上面,或者这行的下面应该也行,添加这段代码

    /** 必须启用此功能,Wordpress 才能在 Nginx 后面工作 */

    if ( (!empty( $_SERVER['HTTP_X_FORWARDED_HOST'])) ||
         (!empty( $_SERVER['HTTP_X_FORWARDED_FOR'])) ) {
        $_SERVER['HTTPS'] = 'on';
    }

就可以解决大部分问题。 这是一个 PHP 代码片段,它的主要作用是在服务器使用了反向代理(如负载均衡器、CDN)的情况下,让 PHP 程序能够正确识别出客户端实际上是用了安全的 HTTPS 连接。 然后之前还有个问题不知道是什么,可能是访问管理界面的时候进不去,解决办法就是去数据库把2个配置网站的地方https改成http就行了,之前应该是没有上面这个配置所以进不去吧,现在又改回https也能正常访问。但是进入管理页面后部分顶部会提示

Notice: 发生了预料之外的错误。WordPress.org或是此服务器的配置可能出了一些问题。如果您持续遇到困难,请试试支持论坛。 (WordPress无法建立到WordPress.org的安全连接,请联系您的服务器管理员。)

问Gemini给出的解决方法是去functions.php文件的底部添加

/**
 * 解决因本地导致的 cURL error 60 SSL 证书验证失败问题
 * 禁用 WordPress HTTP 请求的 SSL 验证
 */
add_filter('http_request_args', function($args, $url) {
    $args['sslverify'] = false;
    return $args;
}, 10, 2);

add_filter('http_request_host_is_external', '__return_true');

这个文件一般在主题文件夹里面,之后确实也不报错了但是安装插件啥的好像还是会出问题,最后是通过下载插件上传才成功安装使用。

今天又去一个群里说了下这个问题有人说可能是因为 ISRG Root X1根证书,然后再去Gemini问一下之前遇到的全部问题是不是因为这个答案是就是这个引起的。然后安装了一下证书再去注释掉禁用SSL验证的代码就正常不报错了,群友还是厉害的,问AI几个小时没解决群友一句话就找到了真正的问题所在。

最后还有一个使用习惯的问题,主题用的是https://github.com/mashirozx/Sakura
这个主题带的APlayer我挺喜欢用的,但是只有电脑版网页才显示手机版网页没有,然后又去问Gemini几个小时调试了网页啥的最后终于找到了,在sakura-app.js文件里面有

    if (document.body.clientWidth > 860) {
        aplayerF();
    }

这么一段代码,AI给出的解决方法是注释上下2行或者直接删掉就行了,我是直接注释的

    // if (document.body.clientWidth > 860) {
        aplayerF();
    // }

就这样然后保存就行了,说是屏幕宽度大于860才显示去掉后就不限制了。

至此差不多就告一段落了,终于把看得见的遇到的问题都解决了,其他的就不管了,太累了,就这样吧。


Ich☆liebe☆dich