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

标签 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 终止是在负载均衡器上完成的。

问题是,负载均衡器后面的所有流量都是非 ssl 的。 如果我将 Wordpress homeurl 和 siteurl 从 http 更改为 https,我会收到重定向错误(循环)。

我试图在主服务器上使用这样的规则:

RewriteCond %{HTTPS} !=on
RewriteRule ^/wpa/(.*)$ https://www.example.com/wpa/$1 [L,R=301]

仍然出现重定向错误。我尝试检查 RewriteLog,但找不到正确的信息。

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

最佳答案

  1. 在 wp-config.php 中使用以下代码,

定义('FORCE_SSL_ADMIN',真);
定义('FORCE_SSL_LOGIN',真);
如果($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='开';

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

关于wordpress - 使用 ProxyPass 在负载均衡器后面将 Wordpress http 更改为 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43996510/

相关文章:

java - Android 应用程序中 keystore 中的空别名列表

php - 是否有任何技术可以在 WordPress 中分离代码和标记?

wordpress - 计算 WordPress 中的类别总数?

java - org.glassfish.grizzly.http.ajp.AjpHandlerFilter.encodeHttpPacket(AjpHandlerFilter.java :282) when using Apache as load balancer for GF 5

ssl - 登台服务器子域上的 Heroku SSL

Python requests.get 为 HTTPS url 引发 ConnectionError

html - 在 IE9/10 上表格内的文本溢出页面

html - 根据元素的数量拉伸(stretch)列表元素的全宽

php - 从网址中删除/重定向index.php以防止重复的网址

php - Xampp 上的 Symfony 项目返回 500 个内部服务器错误