【问题标题】:Wordpress behind reverse proxy admin issues反向代理管理问题背后的 Wordpress
【发布时间】:2013-08-28 21:44:54
【问题描述】:

基本上正如标题所说,我在反向代理后面有一个 wp。 比方说,域名是,wordpress是****/blog 以下是允许它以这种方式工作的 wp-config.php 编辑:

define('.ADMIN_COOKIE_PATH.', '/blog');
define('.COOKIE_DOMAIN.', 'www.***.com');
define('.COOKIEPATH.', '/blog');
define('.SITECOOKIEPATH.', '.');


if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
        $_SERVER['REMOTE_ADDR'] = $list[0];
  }
define('DOMAIN_CURRENT_SITE', 'https://www.***.com/blog');
define('WP_HOME','https://www.***.com/blog');
define('WP_SITEURL','https://www.***.com/blog');
$_SERVER['REMOTE_ADDR'] = 'https://www.***.com/blog';
$_SERVER['HTTP_HOST'] = 'www.***.com/blog';
$_SERVER[ 'SERVER_ADDR' ] = 'www.***.com/blog';


define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
       $_SERVER['HTTPS']='on';

$_SERVER['REQUEST_URI'] = str_replace("https://www.***.com/wp-admin",
                                      "https://www.***.com/blog/wp-admin",
                                      $_SERVER['REQUEST_URI']);

现在,一切正常,但是当我在管理面板的某些地方时,比如说 cmets,如果我提交表单,WP 会转到 */wp -admin 而不是 */blog/wp-admin 并崩溃到 404。

更新

尝试了 VHost 方法,将其添加到我的 httpd.conf 中

Listen 80 <VirtualHost *:80> 
  DocumentRoot /var/www/wp-admin 
  ServerName https://***/blog/wp-admin 

# Other directives here 
</VirtualHost> 

但奇怪的是,每当我在此之后访问 /blog 时都会出现重定向循环

我该如何解决这个问题?

【问题讨论】:

  • 您的 wordpress 网站安装在哪里?我的意思是在您的虚拟主机的哪个文件夹中?
  • var/www(不是www/wordpress,只是在var/www),为什么?
  • 为您的网站创建虚拟主机会更简单吗?因为您正在重写“$_SERVER['REQUEST_URI']”,但它改变了 wordpress 的原生工作流程。
  • 那行是一个实验,我现在没有它,它仍然以同样的方式工作......你是什么意思创建一个虚拟主机?
  • 查看此链接:httpd.apache.org/docs/current/vhosts/examples.html。我的意思是为 www.***.com/blog/wp-admin/ 为文档根 www/sitefolder/wp-admin 创建一个虚拟主机。你看到了吗?

标签: wordpress reverse-proxy


【解决方案1】:

$_SERVER['REQUEST_URI'] 不包含完整的 URL,因此您应该只替换 /wp-admin/。鉴于你的例子:

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

【讨论】:

  • 6 年后,它仍然具有相关性。这帮助我解决了我在 Kinsta 上的博客的问题。谢谢@sdocio!
  • 伙计,这是 2021 年 4 月,你为我节省了 2 周的时间来调试 WP 来解决这个问题
  • 以后会在此处添加关键字以保存其他关键字:WordPress、AWS、Cloudfront、/blog、子文件夹、子目录
  • 根本原因似乎是 wordpress 并不总是尊重它的设置。 core.trac.wordpress.org/ticket/53998
猜你喜欢
  • 2011-03-30
  • 2019-08-31
  • 1970-01-01
  • 2019-03-14
  • 2014-04-24
  • 2017-06-22
  • 1970-01-01
  • 1970-01-01
  • 2019-03-24
相关资源
最近更新 更多