Lan*_*ing 12 mod-rewrite apache-2.2
我在(简单的亚马逊)负载平衡器后面有一个 apache 服务器。我想将任何不是 443 的传入流量重定向到 443。我希望它只使用一个 apache 虚拟主机。所以我试图检测 HTTP_X_FORWARDED_PORT 标头是否不是 443。
我检查了RewriteCond 文档,它只适用于有限的一组 HTTP 标头。
基本上我在做什么是这样的:
<VirtualHost *:80>
ServerName www.example.com
RewriteEngine On
RewriteCond %{HTTP_X_FORWARDED_PORT} !=443
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
....
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
但 RewriteCond 无法识别 HTTP_X_FORWARDED_PORT。
有没有其他方法可以做到这一点(只有一个 VirtualHost)?(某种类型的传入标头检查?)
谢谢,兰斯
Sha*_*den 13
RewriteCond
文档的更远一点:
%{HTTP:header}
, 其中 header 可以是任何 HTTP MIME-header 名称
所以,你可以做到这一点,只是形式与预提取的标题不同。
尝试这个:
RewriteCond %{HTTP:X-Forwarded-Port} !=443
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Run Code Online (Sandbox Code Playgroud)