我正在寻找一个 WP php 规则,以便始终通过所需主机提供任何网页服务,而不添加重定向规则,在这种情况下这不是一个选项。见下文。
我们的主站点位于一台服务器上,WordPress 安装在另一台服务器上。我们使用 cloudflare 工作人员通过主服务器 (domain.com/blog) 的子目录来提供博客内容 (blog.domain)。
为了避免 WP 管理端出现一些问题,我们必须修改 wp-config.php 以指定正确的主机,该主机将是主域/博客
$_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI'];
$_SERVER['SCRIPT_NAME'] = '/blog' . $_SERVER['SCRIPT_NAME'];
$_SERVER['PHP_SELF'] = '/blog' . $_SERVER['PHP_SELF'];
$_SERVER['HTTP_HOST'] = 'www.domain.com';
来源:https://core.trac.wordpress.org/ticket/36201#comment:17
我后来注意到的是(1)WP admin总是将子域重定向到所需的主机,所以如果我通过原始子域进入wp管理面板,它将重定向到主域/博客/wp-admin。 (2) 即使我点击前端 URL 并且登录到 WP 管理员,也会发生同样的情况,主机将被替换。 (3) 如果我没有登录管理面板,但我使用带有查询参数的 URL,例如
https://sub.domain.com/?page_id=3
它将使用干净的 URL 重定向到所需的主机。
我的问题是如何让 WP 始终重定向到所需的主机?在 PHP 或 apache/Nginx 中使用简单的重定向规则将导致无限循环(因为子目录依赖于内容的子域)
您需要将“站点地址”设置为
domain.com/blog
并保留“WordPress地址”以指向blog.domain.com
子域。
进一步阅读: