首页 > 解决方案 > Wordpress 从 https 重定向到 http

问题描述

我正在运行一个 Wordpress SSL 网站,它需要一个选项卡为非 SSL,因为它运行一个不安全的 websocket,否则会因为混合内容而被拒绝。

在这方面,我正在 .htaccess 文件中进行重定向:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/(stage/)$
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*) http://%{HTTP_HOST}/$1 [R=301,L]

这确实使这个特定的选项卡不安全,但是,它也会导致以下两个问题:

1.)从 https 切换到 http 后,我丢失了任何 wordpress 状态信息 - 它基本上表现得好像用户没有登录。回到其他安全选项卡,信息又回来了。

2.) 这个特定选项卡包括三个 iFrame,我只能通过 https 而不是通过 http 来包含它们。当通过 http 包含它们时,我在问题 1 之上。)也完全失去了 wordpress 数据库访问权限。

事实上,从 https 切换到 http 只是一种解决方法,但目前是一个很好的折衷方案。它可以在没有 Joomla 中提到的问题的情况下工作,现在我想知道是否有办法在 Wordpress 中摆脱它们。

提前谢谢,最好的

亚历克斯

标签: databasewordpresssslredirect

解决方案


WordPress'SECURE_AUTH_COOKIE等于'wordpress_sec_' . md5(get_site_option('siteurl')). 因此,当您更改环境(从安全到非安全)时,siteurl 会发生变化,并且您的会话 cookie 哈希会有所不同。在继续之前,您需要用户同时登录安全和非安全。

有问题的代码位于wp-includes/default-constants.php。因为这在任何插件/主题代码之前运行。您必须在wp-config.php级别上破解它。然后检查它在wp-includes/pluggable.php文件中的使用情况,以了解未来是否需要修改。可插入文件在插件初始化之后运行,因此如果需要,您可以在那里挂接过滤器。


推荐阅读