【问题标题】:How to stop random redirects to HTTPS?如何阻止随机重定向到 HTTPS?
【发布时间】:2017-05-21 10:50:27
【问题描述】:

我长期面临一个非常烦人的问题,也许有人可以解释一下这件事......

我在 Hostinger 共享环境中的所有 Wordpress 网站都有相同的错误:随机重定向到 HTTPS

有时它会尝试通过 HTTPS 加载所有资源 - 似乎是随机的。

但大多数时候,重定向发生在 wp-admin 上,同时保存帖子、导航等。

我已经将这个添加到 .htaccess 中,例如:

RewriteCond %{HTTPS} on 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}

这些是没有更改设置的默认 wordpress 安装,这确实是一个错误,Hostinger 已经承认这一点。他们说他们会修复它,但已经超过 6 个月了。

证书颁发给*.main-hosting.eu,错误为NET::ERR_CERT_AUTHORITY_INVALID

如何将所有 HTTPS 请求重定向到 HTTP?我该如何解决这个错误?

-- 编辑--

我确认这是一个服务器端错误,使用以下代码创建了一个简单的 debug.php:http://pastebin.com/n8PekA6d - 结果是:http://pastebin.com/t70nkTyj

【问题讨论】:

  • 您不能将 HTTPS 请求重定向到 HTTP,因为它们永远不会到达服务器(在发出任何请求之前发生 SSL 错误)。恐怕你看错了方向。
  • @DaanMeijer 在共享主机环境中我无能为力吗?我在 Hostinger 的手中?
  • 好吧,我没这么说。我觉得服务器配置随机将您重定向到 SSL 很奇怪。我的直觉是重定向来自 PHP 内部的某个地方。但是,如果您确定它不是来自 PHP,并且取决于托管商,那么除了寻找另一个托管商之外,您几乎无能为力:(
  • 它只发生在 Wordpress 网站上。我在那里托管了大约 40 个,以及我自己制作的一两个自定义 MVC。您知道如何在大量的 Wordpress 代码中找到它可能重定向到 HTTPS 的位置吗?
  • 通常,任何重定向都由wp_redirect(...) 完成。它在 wp-includes/pluggable.php 中定义,在第 1143 行附近。在这里您可以尝试使用 var_dump($location); debug_print_backtrace(); die(); 来检查让您到达那里的调用路径:)

标签: php wordpress .htaccess redirect


【解决方案1】:

我看了你的视频。虽然我通常会建议启用 https,但在这种情况下,您可能会更好:

$_SERVER['REQUEST_SCHEME'] = 'http';
$_SERVER['SERVER_PORT'] = 80; //thanks to Lucas Bustamante

在您的wp-config.php 中。希望有帮助:)

【讨论】:

  • 在调用 wp-settings.php 之前在 wp-config.php 上定义 $_SERVER['REQUEST_SCHEME'] = 'http';$_SERVER['SERVER_PORT'] = '80'; 解决了问题。我在定义它之前通过回显 REQUEST_SCHEME 来确认它,即使它来自 https,它也加载得很好。感谢您出色的调试技巧并愿意提供帮助!
  • 总是乐于帮助有需要的开发人员:)
  • Daan,您能否更新您的答案以包含 SERVER_PORT 80?没有它就不行
猜你喜欢
  • 2018-05-23
  • 2015-06-24
  • 2015-04-21
  • 2018-10-12
  • 2019-12-16
  • 1970-01-01
  • 2020-04-07
相关资源
最近更新 更多