我有同樣的要求。 我有一個AWS負載平衡器指向端口80上的Web服務器。 所有HTTPS請求都使用AWS SSL證書解析,但我的客戶端還要求我將所有80端口請求重定向到HTTPS。
我使用的是Apache服務器,所以我需要以下幾行添加到
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R=301,L]
然後我重新啓動Apache服務和Woala虛擬主機配置文件(httpd.conf文件)! 下面是虛擬主機的配置,你需要爲你的子域做同樣的,例如www.yourdomain.com
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R=301,L]
ServerAdmin [email protected]
DocumentRoot "/apache2/htdocs/YourDomainFolderWeb"
ServerName yourdomain.com
ErrorLog "logs/yourdomain.com-error_log"
CustomLog "logs/yourdomain.com-access_log" common
</VirtualHost>
希望工程。 的更多信息: https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/
最佳
問題您鏈接到有回答你的問題。 TCP負載平衡器在第4層左右運行,既沒有協議感知,也沒有操縱負載的能力以添加HTTP標頭。 HTTP(S)負載均衡器在第7層操作,並且能夠操縱負載以添加標頭。 – 2014-10-30 01:12:48
[Amazon Elastic Load Balancer未填充x -forward-proto頭]的可能重複(http://stackoverflow.com/questions/19049320/amazon-elastic-load-balancer-is-not-populating-x-forwarded-原始標題) – 2014-10-30 01:13:20
@Michael - sqlbot - 感謝您的解釋 – naveen 2014-10-30 15:48:03