Skip to main content
  1. Posts/
  2. blog.dsinf.net/

Przekierowanie z HTTP na HTTPS (mod_rewrite)

·107 words·1 min
blog.dsinf.net apache2 webserver
Daniel Skowroński
Author
Daniel Skowroński

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

<Directory /nasz/katalog/z/witryną>
jakieś  dyrektywy
</Directory>

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$