我在其他(主要)网络服务器后面运行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终止在Load Balancer完成。
问题是,Load Balancer背后的所有流量都是非ssl。 如果我将Wordpress homeurl和siteurl从http更改为https,我会收到重定向错误(循环)。
我试图在主服务器上使用这样的规则:
RewriteCond %{HTTPS} !=on
RewriteRule ^/wpa/(.*)$ https://www.example.com/wpa/$1 [L,R=301]
仍然出现重定向错误。我试图检查RewriteLog但是我找不到正确的信息。
有没有人知道如何解决这个问题?
答案 0 :(得分:1)
define(&#39; FORCE_SSL_ADMIN&#39;,true);
define(&#39; FORCE_SSL_LOGIN&#39;,true);
if($ _SERVER [&#39; HTTP_X_FORWARDED_PROTO&#39;] ==&#39; https&#39;)
$ _SERVER [&#39; HTTPS&#39;] =&#39;上&#39 ;;