Wordpress 和 F5 WAF - 由于 SSL 导致的无限循环

Wordpress and F5 WAF - Infinite loop due to SSL

我在 https 上有一个 wordpress 网站,它在没有在服务器上实施 F5 WAF 的情况下工作正常。但是一旦启用WAF,网站就会进入无限循环。

经过调试我发现wordpress正在做301重定向到HTTPS,WAF也在做同样的事情。因此,我已经停止 wordpress 进行 301 重定向到 HTTPS,这修复了无限循环问题(因为 wordpress 不再进行 HTTPS 重定向)。但是在这样做之后,主题/wordpress 加载的所有资产文件都被阻止,因为它们不再在 HTTPS 上。

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

以下是我的 .htaccess 代码:

# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
# RewriteCond %{HTTPS} off
# RewriteCond %{HTTP:X-Forwarded-Proto} =http
# RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

PS: 有什么方法可以让所有的主题资源都通过相对路径加载而不需要base URL?我正在使用 Avada 主题。

到目前为止,解决此问题的最简单方法是将 serverssl 配置文件添加到 F5 WAF 上的虚拟服务器,使其在将流量发送到 Wordpress 之前重新加密。这样就不会调用重写条件(在修改之前的原始配置中)。

这还有利于提高应用程序的整体安全性。

发生这种情况是因为您使用 F5 卸载 SSL 并将明文发送到 WordPress 服务器。有几种方法可以解决此问题,但最简单的方法是重新加密回您的 Wordpress 服务器。因此,只需将池成员更改为 HTTPS/443 并将“serverssl”配置文件添加到虚拟服务器。 如果您需要更多详细信息,请告诉我。