【问题标题】:WP-ADMIN Redirect LoopWP-ADMIN 重定向循环
【发布时间】:2019-06-09 14:09:45
【问题描述】:

我们有一个多站点运行,大约有 6 个站点。

我们的 3 个网站可以通过 wp-admin 访问,其他 3 个则不能。

浏览器告诉我们正在进行的重定向太多。这仅在我们登录 wp-admin 后才会发生。 wp-login 页面运行良好。

我们之前遇到过这个问题,解决了现在工作的 3 个站点,并在我们的 wp-config 中进行了以下修复:

$_SERVER['HTTPS'] = 'on';

而且前端工作正常,只是 wp-admin 有问题。

背景信息:
服务器:Nginx + Apache。从 Nginx 开始,然后重定向到 Apache
SSL:启用

【问题讨论】:

  • 需要更多信息 - 它们是否都运行相同的插件、主题等?站点设置之间存在一些不同,您必须找出那是什么。不幸的是,如果没有更多信息,这里没有人可以提供帮助。
  • @markmoxx 是的,他们运行相同的插件,但主题不同
  • 您编辑说您之前修复了三个工作站点 - 它们的行为是否都相同,所以如果您为其他三个打开 HTTPS,它会修复吗?
  • 最好的办法是将多站点克隆到暂存环境,检查它是否发生在那里,然后切换主题以查看是否是导致问题的主题。
  • 他们之前都有重定向问题,添加 HTTPS 后修复了其中三个

标签: php wordpress apache nginx


【解决方案1】:

根据法典:

如果 WordPress 托管在提供 SSL 的反向代理之后,但 在没有 SSL 的情况下自行托管,这些选项最初将发送任何 请求进入无限重定向循环。为避免这种情况,您可以 配置 WordPress 以识别 HTTP_X_FORWARDED_PROTO 标头 (假设您已正确配置反向代理来设置 标题)。

以下操作将解决问题。

将此添加到 wp-config.php。 (codex reference)

/* SSL Settings */
define('FORCE_SSL_ADMIN', true);

/* Turn HTTPS 'on' if HTTP_X_FORWARDED_PROTO matches 'https' */
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
    $_SERVER['HTTPS'] = 'on';
}

Reference

【讨论】:

  • 如果我在 wp-config 中添加它,我们会在各处得到一个重定向循环
  • 我们已经将$_SERVER['HTTPS'] = 'on'; 放入wp-config.php,我们不需要选择性地允许http 流量。这也不能解决问题:define('FORCE_SSL_ADMIN', true);
  • 在我们的例子中,HTTP_X_FORWARDED_PROTO 标头也返回 https
【解决方案2】:

我有同样的问题,可以解决。问题是我的管理员用户的功能设置为订阅者而不是管理员。可能来自会员插件。

在我的数据库表 wp_usermeta 我的管理员用户 wp_capabilities 设置为 "a:1:{s:10:"subscriber";b:1;}"

我将其更改为 "a:1:{s:13:"administrator";s:1:"1";}" 我再次看到了我的仪表板。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多