Przekierowanie na https jeśli strona jest za proxy

Poniższy snippet pokaże jak zrobić przekierowanie w pliku htaccess z http na https jeśli strona działa za proxy lub load balancerem. Czasami możesz korzystać z serwera proxy, takiego jak load balancer lub zapora sieciowa, np. CloudFlare, Incapsula lub Sucuri. Można je skonfigurować tak, aby używały protokołu SSL na fontendzie, ale nie używały protokołu SSL na bacendzie. Aby to działało poprawnie, musisz sprawdzić nie tylko HTTPS w żądaniu, ale także, czy serwer proxy przekazał oryginalne żądanie HTTPS do serwera przy użyciu tylko HTTP. Poniższa reguła sprawdza, czy żądanie zostało przekazane z HTTPS, a jeśli tak, nie próbuje przekierować go dodatkowo.

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