Answers:
您已添加$_SERVER['HTTPS'] = 'on';
到wp-config.php吗?
您还应该使用WP Migrate DB插件从迁移http://yoursite.com
到https://yoursite.com
我遇到了类似的问题,只是将以下代码段添加到了我的代码中wp-config.php
:
/** SSL */
define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https
// so check for https existence
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
如法典建议。仅在您的负载均衡器(或防火墙)设置中启用了SSL直通的情况下才需要这样做。这意味着,虽然您可以在TLS / SSL中通过HTTP访问站点,但是服务器接收的通信仅是HTTP。为了解决这个问题,需要上面的标头,以便WordPress可以on
在$_SERVER
配置数组中“设置” HTTPS为。
$_SERVER['HTTPS'] = 'on';
因为HTTP_X_FORWARDED_PROTO甚至不在客户端服务器上的设置中:
由于我还没有评论权限,因此我将发布此附加内容作为另一个答案:
Elias提出的解决方案向,添加了以下内容wp-config.php
:
/** SSL */
define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https
// so check for https existence
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
但是,仅当我将其放在此文件中的所有其他内容之前,它才对我有用!
require_once( ABSPATH . 'wp-settings.php' );
文件末尾之前。
书籍的另一个版本,只需将其添加到wp-config.php的顶部
原因是可能存在负载平衡器或某些未传递正确的https值的东西,因此您必须从其他地方获取它并伪造为wordpress。
if ( (isset($_SERVER['HTTP_X_FORWARDED_PORT'] ) && ( '443' == $_SERVER['HTTP_X_FORWARDED_PORT'] ))
|| (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')) {
$_SERVER['HTTPS'] = 'on';
}
5岁的问题...
好吧,我有这个错误,我安装SSL证书和更改都链接后http
到https
使用中发现的WP-cli.phar 这里。
我尝试了各种配置,除非我进行了以下设置,否则似乎都无法解决此问题:
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
对此:
define('FORCE_SSL_ADMIN', false);
define('FORCE_SSL_LOGIN', false);
它允许我访问登录页面,但随后无法实际登录。我尝试了两个答案,但不幸的是,它还是没有帮助,直到我做了以下更改:
/** SSL */
define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https
// so check for https existence
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== true)
$_SERVER['HTTPS']='on';
由于某些原因,我不知道为什么-我不得不更改
!==错误
至
!==真
我正在将nginx作为主机运行,并向nginx单元提供反向代理...如果有人知道为什么这样做,请告诉我