freessl.pl English Zaloguj się Wygeneruj certyfikat

Jak przekierować stronę z http na https

Stan: październik 2026 · czytanie około 4 min

W skrócie

Po instalacji certyfikatu strona nadal otwiera się także przez http://. Przekierowanie 301 sprawia, że każdy trafia na wersję z https. Najprościej włączyć je w panelu hostingu (cPanel, DirectAdmin, Plesk); na serwerze Apache wystarczą trzy linie w pliku .htaccess, a w nginx krótki blok konfiguracji.

Przekierowanie 301: strona pod adresem http://twojadomena.pl z ostrzeżeniem prowadzi przez serwer na https://twojadomena.pl z kłódką.

Po co przekierowanie

Certyfikat sprawia, że strona działa pod https://, ale nie wyłącza starego adresu z http://. Bez przekierowania część odwiedzających (stare linki, zakładki, ręcznie wpisany adres) dalej łączy się bez szyfrowania i widzi ostrzeżenie przy adresie: w Chrome „Niezabezpieczona”, w Firefoksie „Niezabezpieczone”, w Safari „Brak ochrony”. Wyszukiwarki widzą wtedy dwie kopie tej samej strony. Przekierowanie 301 mówi przeglądarkom i wyszukiwarkom, że strona na stałe przeniosła się pod https://.

Zanim zaczniesz

  • Otwórz ręcznie https://twojadomena.pl i https://www.twojadomena.pl. Oba adresy muszą działać bez ostrzeżenia. Przekierowanie na adres z błędem certyfikatu odetnie stronę wszystkim odwiedzającym.
  • Jeśli strona po przejściu na https wygląda źle albo coś nie działa, najpierw usuń mieszaną zawartość.
  • Przekierowanie nie przeszkadza w potwierdzaniu domeny plikiem przy kolejnych certyfikatach: Let's Encrypt idzie za przekierowaniem na https.

W panelu hostingu

  • cPanel: „Domeny” (Domains) → przy domenie przełącznik „Wymuszanie przekierowania HTTPS” (Force HTTPS Redirect). Działa tylko dla domeny z ważnym certyfikatem.
  • DirectAdmin: zaznacz „Wymuś SSL z przekierowaniem https” na stronie „Certyfikaty SSL” albo w ustawieniach domeny („Konfiguracja domen”) i zapisz. Opcja wymaga włączonego „Bezpieczny SSL”; jeśli jej nie ma, użyj pliku .htaccess (niżej).
  • Plesk: w ustawieniach hostingu domeny („Ustawienia hostingu”, w nowym wyglądzie „Hosting i DNS” → „Hosting”), w części „Bezpieczeństwo”, zaznacz stałe przekierowanie 301 z HTTP na HTTPS (po angielsku „Permanent SEO-safe 301 redirect from HTTP to HTTPS”). Najpierw musi być zaznaczona „Obsługa SSL/TLS” i wybrany certyfikat. W nowszych wersjach Plesk to przekierowanie jest dla nowych domen włączone od razu.
  • Inne panele: szukaj opcji „Wymuś HTTPS”, „Przekierowanie na HTTPS” albo „Force HTTPS” w ustawieniach domeny lub SSL. Jeśli jej nie ma, użyj pliku .htaccess.

Plik .htaccess (Apache, większość hostingów)

W katalogu strony (tam, gdzie jest plik index) otwórz plik .htaccess albo utwórz go. Zapisz najpierw kopię starego pliku. Na samym początku dopisz:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Jeśli po dopisaniu strona pokazuje błąd o zbyt wielu przekierowaniach (w Chrome ERR_TOO_MANY_REDIRECTS, w Firefoksie „Pętla przekierowań”), usuń te linie. Tak dzieje się m.in. za Cloudflare w trybie SSL „Flexible”: skoro serwer ma już certyfikat, przełącz w Cloudflare tryb SSL/TLS na „Full (strict)” albo usuń regułę i włącz przekierowanie na HTTPS w Cloudflare.

Własny serwer z nginx

Dodaj osobny blok dla portu 80, który przekierowuje wszystko na https:

server {
    listen 80;
    server_name twojadomena.pl www.twojadomena.pl;
    return 301 https://$host$request_uri;
}

Jeśli konfiguracja ma już blok z listen 80 dla tej domeny, zamień jego zawartość zamiast dodawać drugi. Jeśli domena ma adres IPv6 (rekord AAAA), dopisz też listen [::]:80;. Sprawdź konfigurację poleceniem sudo nginx -t i przeładuj serwer: sudo systemctl reload nginx. Konfigurację certyfikatu dla portu 443 opisujemy w instrukcji dla serwera.

WordPress

W „Ustawienia” → „Ogólne” zmień oba adresy („Adres WordPressa (URL)” i „Adres witryny (URL)”) na https://, żeby linki w stronie prowadziły do wersji z https. Sama zmiana adresów nie przekierowuje jednak wejść z http://: strona nadal się pod nim otworzy. Przekierowanie włącz w panelu hostingu albo w pliku .htaccess (wyżej).

Przekierowanie z www na bez www

Strona powinna mieć jeden adres: z www albo bez. Wybierz jedną wersję, np. https://twojadomena.pl, i przekieruj na nią drugą przekierowaniem 301. Wyszukiwarki widzą wtedy jedną stronę zamiast dwóch kopii. Certyfikat musi jednak obejmować obie nazwy, bo przeglądarka sprawdza go, zanim dostanie przekierowanie. W generatorze wpisz wtedy obie: twojadomena.pl, www.twojadomena.pl.

Plik .htaccess (Apache)

Ten kod przenosi z www na adres bez www i jednocześnie z http na https, jednym przekierowaniem. Wstaw go na początku pliku .htaccess zamiast trzech linii z części Plik .htaccess, nie obok nich, i zamień twojadomena na swoją domenę (kropki z ukośnikiem zostaw):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.twojadomena\.pl$ [NC]
RewriteRule ^ https://twojadomena.pl%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

nginx

Blok dla portu 80 przekierowuje obie nazwy prosto na adres bez www, a osobny blok dla www na porcie 443 przekierowuje wejścia przez https:

server {
    listen 80;
    server_name twojadomena.pl www.twojadomena.pl;
    return 301 https://twojadomena.pl$request_uri;
}
server {
    listen 443 ssl;
    server_name www.twojadomena.pl;
    ssl_certificate     /etc/ssl/twojadomena/fullchain.pem;
    ssl_certificate_key /etc/ssl/twojadomena/privkey.pem;
    return 301 https://twojadomena.pl$request_uri;
}

W głównym bloku strony (z listen 443 ssl;) zostaw w server_name tylko twojadomena.pl. Potem sudo nginx -t i sudo systemctl reload nginx.

Odwrotnie: z bez www na www

Jeśli wolisz adres z www, w pliku .htaccess zamień nazwy miejscami:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^twojadomena\.pl$ [NC]
RewriteRule ^ https://www.twojadomena.pl%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

W nginx zrób to samo: w obu blokach przekierowania wpisz https://www.twojadomena.pl$request_uri, drugi blok ustaw na server_name twojadomena.pl;, a w głównym bloku zostaw www.twojadomena.pl.

W panelu hostingu

Część paneli ma tę opcję w ustawieniach domeny, np. Plesk jako wybór preferowanej domeny (z www albo bez), a cPanel przy tworzeniu przekierowania pozwala wybrać, czy dotyczy adresu z www. Jeśli panel jej nie ma, użyj pliku .htaccess. Wynik sprawdzisz tak samo jak przekierowanie na https (niżej): curl -I http://www.twojadomena.pl powinno pokazać Location: https://twojadomena.pl/.

Sprawdzenie

Przeglądarki zapamiętują przekierowanie 301, więc sprawdzaj w oknie prywatnym (incognito). Wpisz http://twojadomena.pl (z http) i zobacz, czy adres zmienia się na https://. Na komputerze z terminalem możesz też użyć polecenia curl -I http://twojadomena.pl: w odpowiedzi powinien być kod 301 i linia Location: https://….

Czytaj dalej

Gotowy? Certyfikat w kilka minut, bez opłat.Wygeneruj certyfikat