使用ProxyPass将Wordpress http更改为负载均衡器后面的https

时间:2017-05-16 08:44:44

标签: wordpress apache ssl mod-rewrite url-rewriting

我在其他(主要)网络服务器后面运行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但是我找不到正确的信息。

有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

  1. 在wp-config.php中使用以下代码,
  2. 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 ;;

    1. 检查.htaccess文件,它应该是干净的。
    2. 重新保存固定链接。
    3. 如果使用CDN,请启用443端口。