Apache可以有条件地执行自定义http头的重写吗?

我有一个(简单的亚马逊)负载平衡器后面的apache服务器。 我想redirect到443不是443的任何传入stream量。我宁愿它只使用一个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> 

但RewriteCond不识别HTTP_X_FORWARDED_PORT。

有没有其他的方法来完成这个(只有一个VirtualHost)? (一些types的传入头检查?)

谢谢,兰斯

RewriteCond文件的下面:

%{HTTP:header} ,其中header可以是任何HTTP MIME头名称

所以,你可以做到这一点,只是不像预解压缩标题的forms。

尝试这个:

 RewriteCond %{HTTP:X-Forwarded-Port} !=443 RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]