今天折腾了一天的wordpress,想从http切换到https
首先用acme申请了证书
在wordpress容器到公网之间添加了一个nginx做反代顺便添加https支持
首先遇到的问题是修改站点地址为https后argon的js和css都请求失败,一看发现还都是http
折腾半天找不到配错的地方,最后没写过php也只能硬改代码了,在argon的functions.php里添加了以下代码
function fix_output_urls($buffer) {
return str_replace('http://e404.top', 'https://e404.top', $buffer);
}
function start_output_buffer() {
ob_start("fix_output_urls");
}
add_action('wp_loaded', 'start_output_buffer');
然后就返回了正常的https地址
但是打开管理界面的时候一直重定向到自己
又调试半天,找不到问题原因
只能直接改代码看日志debug
半夜把is_ssl函数改了一下发现能跑了
function is_ssl() {
if ( isset( $_SERVER['HTTPS'] ) ) {
if ( 'on' === strtolower( $_SERVER['HTTPS'] ) ) {
return true;
}
if ( '1' === (string) $_SERVER['HTTPS'] ) {
return true;
}
} elseif ( isset( $_SERVER['SERVER_PORT'] ) && ( '443' === (string) $_SERVER['SERVER_PORT'] ) ) {
return true;
}
return false;
}
第二天发现是wp-config-docker.php原来是需要替换config.php的