我在另一个(主)网络服务器后面运行一个 Wordpress。主服务器确实有一个规则,使用 ProxyPass 将所有对/wpa 的请求重定向到 Wordpress 服务器
ProxyPass /wpa/ http://vm.example.com/wpa/
ProxyPassReverse /wpa/ http://vm.example.com/wpa/
Wordpress 本身在 Wordpress 根目录下带有这个 .htaccess 文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wpa/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wpa/index.php [L]
</IfModule>
HTTP 一切正常。但是我想切换到 https,这是一个问题。 SSL 终止是在负载均衡器上完成的。
问题是,负载均衡器后面的所有流量都是非 ssl 的。 如果我将 Wordpress homeurl 和 siteurl 从 http 更改为 https,我会收到重定向错误(循环)。
我试图在主服务器上使用这样的规则:
RewriteCond %{HTTPS} !=on
RewriteRule ^/wpa/(.*)$ https://www.example.com/wpa/$1 [L,R=301]
仍然出现重定向错误。我尝试检查 RewriteLog,但找不到正确的信息。
有人知道如何解决这个问题吗?
最佳答案
- 在 wp-config.php 中使用以下代码,
定义('FORCE_SSL_ADMIN',真);
定义('FORCE_SSL_LOGIN',真);
如果($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='开';
- 检查你的 .htaccess 文件,它应该是干净的。
- 重新保存永久链接。
- 如果使用 CDN,启用 443 端口。
关于wordpress - 使用 ProxyPass 在负载均衡器后面将 Wordpress http 更改为 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43996510/