php - Wordpress 和 F5 WAF - SSL 导致的无限循环
问题描述
我在 https 上有一个 wordpress 网站,并且在没有在服务器上实施 F5 WAF 的情况下运行良好。但是一旦启用 WAF,网站就会进入无限循环。
调试后我发现 wordpress 正在做 301 重定向到 HTTPS,而 WAF 也在做同样的事情。结果,我停止了 wordpress 对 HTTPS 的 301 重定向,这解决了无限循环问题(因为 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:有没有办法让所有的主题资产通过相对路径加载,而不需要基本 URL?我正在使用 Avada 主题。
解决方案
发生这种情况是因为您让 F5 卸载 SSL 并将明文发送到 WordPress 服务器。有几种方法可以解决此问题,但最简单的方法是重新加密回您的 Wordpress 服务器。因此,只需将池成员更改为 HTTPS/443 并将“serverssl”配置文件添加到虚拟服务器。如果您需要更多详细信息,请告诉我。
推荐阅读
- html - 什么可能导致我的 inline-block 元素(绿色框)上的空白?
- python - 如何在运行后跳过代码
- python - 在内容 django 模板中呈现动态值
- node.js - 为什么nodejs express post请求中的“body”为空?
- php - 如何验证 Laravel 中的数组对象?
- flutter - 在颤振中使用 AudioPlayer 会出现此错误
- python-3.x - supervisord/celery/python - “动态” 环境变量 - “全局” 与 “本地” - DRY
- r - R中的公式没有在循环中正确更新
- assembly - 多输入按键宏
- python - MLFlow - 在 Windows 10 上运行“mlflow ui”抛出文件未找到错误