WordPress wp-admin HTTPS重定向循环

时间:2014-12-03 作者:iamkingsleyf

我使用nginx作为我的Web服务器,我编辑了配置文件以指向https,因此我将WordPress url设置更改为https,并将WordPress force ssl管理代码添加到我的wp配置文件中,但我一直遇到错误“This webpage has a redirect loop“”

enter image description here

9 个回复
SO网友:thaevok

你已经added $_SERVER[\'HTTPS\'] = \'on\'; to your wp-config.php?

您还应该使用WP Migrate DB 要从中迁移的插件http://yoursite.comhttps://yoursite.com

SO网友: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\';
根据建议in the Codex. 只有在负载平衡器(或防火墙)设置中启用了SSL直通时,才需要这样做。这意味着,虽然您可以通过TLS/SSL中的HTTP访问站点,但服务器接收的通信仅为HTTP。为了说明这一点,需要使用上面的标题,以便WordPress可以;设置(&Q);HTTPS收件人on$_SERVER 配置阵列。

SO网友:Michael Jung

由于我还没有发表评论的特权,我会将此添加作为另一个答案:

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\';
然而,只有当我put it before everything else 在此文件中!

SO网友:Timo Huovinen

这本书的另一个版本,只需将其添加到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\';
}

SO网友:Ricky

5年前的问题。。。

好的,在安装SSL证书并更改所有httphttps 使用wp cli。找到pharhere.

我尝试了各种配置,但似乎都无法解决此问题,除非我设置此选项:

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单元。。。如果有人知道为什么会这样,请告诉我

SO网友:emcolsson

事实上我有这个问题,解决起来很容易,也很尴尬。不知何故,在webhost上,我的wp admin文件夹被删除,因此没有wp admin出现相同的错误消息。

经过数小时的测试,我看到了很多不同的方法,当下载并再次上传时,一切正常。

伙计们,可以这么简单。

SO网友:Shady Mohamed Sherif

当我在Azure webapp服务Linux上托管我的站点时,我也遇到了同样的问题。

尝试此插件。当它激活时要小心,它会工作。https://wordpress.org/plugins/jsm-force-ssl/

该插件使用本机WordPress过滤器,而不是PHP的输出缓冲区,以实现最大的可靠性、性能和缓存兼容性(该插件不影响缓存性能),以及301个永久重定向以实现最佳SEO(从HTTP移动到HTTPS时,301个重定向被视为最适合SEO)。

支持大型托管环境的代理/负载平衡变量:

HTTP\\u X\\u转发\\u协议HTTP\\u X\\u转发\\u SSL要求:

您的web服务器必须配置SSL证书并能够处理HTTPS请求。

只需激活插件,即可完成:

没有需要调整的插件设置,也没有对WordPress配置进行任何更改-只需激活或停用插件即可启用/禁用过滤器和动态重定向。

SO网友:Willower

我遇到了同样的问题,所以经过数小时的研究和调整后,我让它开始工作。我会分享我所做的一切,因为我不确定他们是否都有关联。

首先,我在cpanel上托管我的wordpress网站,所以我在cpanel上使用Softaculous工具升级我的wordpress版本。

其次,我升级了wordpress数据库。

(我注意到我的网站根文件夹中的.htaccess文件被更新为RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] )

然后我检查了。我的wp admin文件夹的htaccess文件然后我看到以下命令:

Order Allow,Deny
Deny from all
我去阅读wordpress website 这些命令旨在阻止web访问该文件夹中的文件,但这不是我需要的行为(我想)

所以我把它们注释掉了,我可以加载我的管理部分。

SO网友:Lysak

仅将CloudFlare配置为https并在wp配置集中配置

define(\'FORCE_SSL_ADMIN\', false);
define(\'FORCE_SSL_LOGIN\', false);

结束

相关推荐

除管理端和主页外,其他页面的内容为“500内部服务器错误-nginx/1.1.19”。

我已经建立了一个WordPress网站。我可以登录并浏览首页,但除了管理端以外的所有内容都会将我带到一个白色页面,页面上有文本“500 Internal Server Error-nginx/1.1.19”。我已经读过这方面的内容,似乎无法解决这个问题。我找不到。htaccess,即使我的FileZilla强制显示隐藏文件。我读到您可能必须启用“fancy”permalink,所以我启用了,但没有结果。