2016-09-29 121 views
1

我使用的是AWS的負載平衡器,目前重定向所有HTTP到HTTPS與此正則表達式的.htaccess WWW:力HTTPS和AWS負載平衡器

RewriteEngine On 
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$ 
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

這工作得很好,因爲我有健康檢查必須是訪問80.但是,目前當試圖訪問https www我得到一個DNS錯誤。

正則表達式看起來是什麼樣的路線一切到https://www,並通過對我的實例http的健康檢查?

謝謝!

+1

什麼是您遇到的DNS錯誤?有沒有可能你有沒有DNS子項的www子域名? –

回答

0

在AWS後面的負載均衡器中,您必須以不同的方式處理事情。由於使用Load Balancer進行SSL卸載,您不會以正常方式檢查https。您需要檢查X-Forwarded-Proto

它應該如下。

RewriteEngine On 
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR] 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{SERVER_NAME} ^(www\.)?(.*)$ [NC] 
RewriteRule ^.*$ https://www.%2%{REQUEST_URI} [R=301,L]`