首页 > 解决方案 > 如何解决 Wordpress 登录尝试导致反向代理后面的重定向?

问题描述

多亏了这个答案,我终于设法通过反向代理后面的 https / force https 访问我的 Wordpress 页面。

但是现在我不能再进入后端了。任何登录尝试只会导致重定向到登录页面而没有实际登录和错误消息:

Error: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.

我尝试通过更改来解决这个问题WP_HOMEWP_SITEURL结果只是导致我之前的问题是一个无休止的重定向循环,我的网站根本无法访问。我对.htaccess文件的更改似乎根本没有任何影响,这可能是因为代理已经强制执行(重定向到)https。

有谁知道为什么会发生这种情况以及如何解决它?

提前致谢!

我来自链接答案的配置:

wp配置:

define('WP_HOME','//'. $_SERVER['SERVER_NAME']);
define('WP_SITEURL','//'. $_SERVER['SERVER_NAME']);
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';

.ht 访问:

 # http to https
 RewriteCond %{HTTP:X-Forwarded-Proto} =http
 RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

否则它是一个干净的 wordpress 页面,没有插件,默认主题。

标签: wordpresshttpsslproxyapache2

解决方案


因为我突然收到了 cookie 错误消息(不知道为什么我在编辑问题之前没有),这很容易自己解决,感谢这个答案

我现在的工作配置是(与链接的答案不同):

// Identify the relevant protocol for the current request

if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)$_SERVER['HTTPS']='on';

$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https" : "http";
 
// Set SITEURL and HOME using a dynamic protocol.
define('WP_SITEURL', $protocol . '://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', $protocol . '://' . $_SERVER['HTTP_HOST']);

推荐阅读