当前位置:  开发笔记 > 编程语言 > 正文

WordPress,nginx代理和子目录:wp-login.php重定向到域

如何解决《WordPress,nginx代理和子目录:wp-login.php重定向到域》经验,为你挑选了2个好方法。

在我的NGINX配置中,WordPress博客位于私人服务器上.我的NGINX公共服务器代理https://www.example.com/blog/的私人服务器内容.

location ^~ /blog/ {    # A "subdirectory", hiding a proxied server

    proxy_pass              http://192.168.0.5:80/;    # The blog resides in the 
                                                       # private's web root, 
                                                       # not in a subdirectory
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_redirect          off;
}

在调用域和子目录时,博客完美呈现.引发wp-login 不会生成重定向 GET字段.

https://www.example.com/blog/wp-login.php

我的siteurl和我的home变量都设置为带子目录的域.

但是,成功登录后,我可能会看到仪表板,但浏览器中的URL会被重写为https://www.example.com/wp-admin,从而导致使用仪表板时出现问题.

虽然博客位于代理私有服务器上,但如何配置WP以重写URL到子目录?

(服务器中的子目录是否必须对称?)



1> 小智..:

我也遇到了同样的问题,我找到了解决方法,解决了问题,将下面的代码添加到wp-config.php

$_SERVER['REQUEST_URI'] = str_replace("/wp-admin/", "/blog/wp-admin/",  $_SERVER['REQUEST_URI']);



2> Richard Smit..:

WordPress使用两个变量来定义它的托管位置:WP_HOMEWP_SITEURL.两者都可以使用仪表板设置,但我更喜欢将它们设置为wp-config.php:

define( 'WP_SITEURL', 'https://www.example.com/blog' );
define( 'WP_HOME', 'https://www.example.com/blog' );

通常设置一个绝对URL(如上所述),其中包括方案和主机名,但我喜欢在反向代理后操作时使用相对URL,如下所示:

define( 'WP_SITEURL', '/blog' );
define( 'WP_HOME', '/blog' );

您可以继续在私有服务器的根目录中运行WordPress(假设不直接访问它).将私有服务器向下移动一级会稍微复杂一些,并且需要稍微更改两台服务器上的Web服务器配置.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有