Menu Zamknij

Przekierowanie z HTTP na HTTPS (mod_rewrite)

Często chcielibyśmy, żeby użytkownik nie miał szans wysłać danych w plain-text. Można to zrobić dzięki mod_rewrite – pluginowi Apache’a domyślnie zitegrowanego z większością instalacji.


Zmiany możemy wprowadzić w głównym konfigu – /etc/apache2/http.conf – wówczas docelowe linie wprowadzamy w znaczniku


jakieś  dyrektywy

Alternatywnie konfig można wprowadzić do pliku .htaccess umieszczonego w interesującym nas katalogu – jedyna opcja przy hostingu.

Typowo przekierowanie powinno wyglądać tak:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Jednak część serwerów (np. autorski perser htaccessów dla nginxa w MyDevilu) nie rozumieją drugiej linijki prowadząc do pętli przekierowań – ERR_TOO_MANY_REDIRECTS. Rozwiązaniem jest zmiana logiki – nie protokół, a port:

RewriteCond %{SERVER_PORT} ^80$

Dodaj komentarz