我正在将Wordpress网站迁移到完全https://
,但我在登录页面遇到问题。
登录页面本身正在加载https://
方案,但表单操作指向页面的不安全的http://
版本,这导致它只需重定向回https://
版本(我假设是因为我的.htaccess
正在将http流量重定向到其https版本。)
在wp-login.php中,以下代码设置表单操作:
<form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
看起来,有问题的功能是site_url()
功能,因为它正在返回网站的http://
版本。
我查看了函数本身,函数调用按此顺序进行:
site_url -> get_site_url -> set_url_scheme -> apply_filter -> *return*
通过这个调用堆栈,我注意到,只有当方案被设置回http://
时才会调用apply_filter函数。
我已明确设置site_url( 'wp-login.php', 'https')
,即使是返回http://
方案。
我希望有人知道这里发生了什么,因为我不知道为什么Wordpress不允许我使用https://
。它似乎几乎在其他地方工作,因为我的css和js的所有相关链接都加载了https版本。
注意:我已设置define('FORCE_SSL_ADMIN', true);
,我的wordpress site_url
和home_url
已设置为选项表中的https://
版本。< / p>
答案 0 :(得分:0)
此问题的根源是我们的供应商留下的mu-plugin,但应该已被删除。无论如何,这里的教训是始终检查您的插件。