在我的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到子目录?
(服务器中的子目录是否必须对称?)
我也遇到了同样的问题,我找到了解决方法,解决了问题,将下面的代码添加到wp-config.php
$_SERVER['REQUEST_URI'] = str_replace("/wp-admin/", "/blog/wp-admin/", $_SERVER['REQUEST_URI']);
WordPress使用两个变量来定义它的托管位置:WP_HOME
和WP_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服务器配置.