【发布时间】:2015-10-12 10:44:58
【问题描述】:
我在公司接管的 WooCommerce 安装中遇到了一个奇怪的问题。它不是我们建造的,不幸的是它建造得非常糟糕,所以我不太确定里面到底发生了什么。
它突然开始“强制”https 连接,但据我所知,无论是代码还是管理员都没有任何变化。我们在服务器上运行 Git,工作树中没有任何变化,我在上传文件夹中搜索了可疑文件,但没有结果。这不太可能是某种恶意软件。该站点未使用 https/ssl 设置,因此这当然会触发超时。
我检查了数据库,home_url 和 site_url 都设置为“http://...”。 WooCommerce 选项“强制 ssl”设置为 false。此外,我们正在运行插件“Better WP Security/iThemes Security”,该插件还提供“强制 ssl”选项,但该选项也设置为 false。
我尝试在 wp-config.php 中将常量 FORCE_SSL_ADMIN 和 FORCE_SSL_LOGIN 都设置为 false - 仍然没有运气。我也尝试使用 .htaccess 重写规则,但这也无济于事。
好像和一个请求头有关; HTTPS: 1(用$ curl -I -H"HTTPS: 1" http://... 测试)。当那个设置为0 时,这不会发生。但是 Chrome 似乎默认发送它,而其他浏览器则不然。我尝试清除 cookie/数据等。问题也出现在我同事的浏览器中(她以前从未访问过该站点)。托管公司表示这与服务器配置无关。
以前有没有人经历过这种情况,或者知道它可能与什么有关?
更新:
运行curl -I -H"HTTPS: 1" http://www.example.com/wp-admin/ 几乎可以确认这与 Wordpress 有关。 cookie 由 WPML 设置,这表明 Wordpress 已初始化。检查Location: 标头:
HTTP/1.1 302 Moved Temporarily
Server: Apache
X-Powered-By: PHP/5.6.11
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
Set-Cookie: _icl_current_admin_language=sv; expires=Wed, 22-Jul-2015 16:06:25 GMT; Max-Age=7200; path=/wp-admin/
Set-Cookie: _icl_current_language=sv; expires=Thu, 23-Jul-2015 14:06:25 GMT; Max-Age=86400; path=/
Set-Cookie: PHPSESSID=xxx; path=/
Location: https://www.example.com/wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2F&reauth=1
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
Date: Wed, 22 Jul 2015 14:06:26 GMT
X-Varnish: nnn
Age: 0
Via: 1.1 varnish
Connection: keep-alive
【问题讨论】:
-
您的服务器配置是否导致了 ssl 站点的重定向?
-
联系了托管公司,他们说不是,忘了说。
-
您的网站使用的是哪个版本的 woocommerce?
标签: php wordpress http https woocommerce