https i prawidłowe przekierowanie
Moduł 4: Szybkość, urządzenia mobilne i https · Czas czytania: 11 minut
Cel lekcji: Po tej lekcji będą Państwo potrafili wyjaśnić, dlaczego https ma znaczenie dla wyszukiwarek i odwiedzających, wskazać różnicę między przekierowaniem stałym a tymczasowym oraz sprawdzić, czy wszystkie wersje Państwa adresu prowadzą w jednym kroku do tej samej strony https.
Kluczowe pojęcia: https, certyfikat, przekierowanie (redirect), 301 i 308 (stałe), 302 i 307 (tymczasowe), łańcuch przekierowań, adres preferowany, z www lub bez www, HSTS, treści mieszane
Cztery adresy jednej strony głównej
Gdy wpisują Państwo nazwę witryny w pasku adresu, przeglądarka może trafić w cztery miejsca:
| Wersja | Przykład |
|---|---|
| http bez www | http://example.com/ |
| http z www | http://www.example.com/ |
| https bez www | https://example.com/ |
| https z www | https://www.example.com/ |
Dla Państwa to jedna witryna. Dla wyszukiwarki to cztery różne adresy. Jeśli wszystkie cztery wyświetlają tę samą stronę, Google musi sam wybrać, który adres jest „prawdziwy”. Google nazywa go adresem kanonicznym (lekcja 3.5 omawia to dokładniej). Google zaleca, aby samodzielnie wybrać jeden adres jako adres preferowany i przekierować do niego pozostałe wersje. Wtedy nie ma wątpliwości, a linki do każdej wersji liczą się dla tej samej strony.
Bloemenatelier Lotte wybiera https://www.example.com/. Pozostałe trzy wersje przekierowują pod ten adres. Czy wybiorą Państwo wersję z www, czy bez, dla wyszukiwarek nie ma znaczenia. Ważne, aby dokonać jednego wyboru i trzymać się go wszędzie: w menu, w mapie witryny, w canonical i w profilu firmy.
Dlaczego https
https oznacza, że połączenie między przeglądarką a serwerem jest szyfrowane za pomocą certyfikatu. Nikt po drodze nie może podsłuchać ani zmienić zawartości strony, na przykład w publicznej sieci wifi.
Dla wyszukiwarek https liczy się na dwa sposoby:
- Jako sygnał. W 2014 roku Google ogłosił, że https jest sygnałem rankingowym, ale nazwał go wtedy „bardzo słabym sygnałem”, który waży mniej niż dobre treści. W dokumentacji dotyczącej wrażeń użytkownika na stronie https figuruje jako jedno z pytań, które warto sobie zadać („czy Państwa strony są dostarczane w bezpieczny sposób?”). Nie należy więc tego przeceniać: samo https nie wyniesie Państwa na szczyt wyników.
- Dla odwiedzających. Przeglądarki oznaczają stronę na http jako „Niezabezpieczona”, zwłaszcza gdy zawiera formularz. Odwiedzający, który to widzi, szybciej rezygnuje. Odczują to Państwo w liczbie odwiedzin, a nie w zasadach rankingu.
Ważny certyfikat można dziś uzyskać bezpłatnie przez Let's Encrypt. U większości firm hostingowych, także w WebOké, jest on zamawiany i odnawiany automatycznie. Prosimy zwrócić uwagę, aby certyfikat obejmował obie nazwy: bez www i z www. Jeśli obejmuje tylko example.com, adres https://www.example.com/ zwróci błąd certyfikatu, zanim przekierowanie w ogóle nastąpi.
Przekierowanie stałe czy tymczasowe
Przekierowanie (redirect) to odpowiedź serwera: „ta strona znajduje się gdzie indziej”. Odbywa się to za pomocą trzycyfrowego kodu statusu zaczynającego się od 3 oraz nagłówka Location z nowym adresem.
| Kod | Znaczenie | Co robi z tym Google |
|---|---|---|
| 301 | Przeniesiono na stałe | Silny sygnał, że cel jest adresem kanonicznym |
| 308 | Przeniesiono na stałe (metoda pozostaje taka sama) | To samo co 301 |
| 302 | Znaleziono tymczasowo | Brak sygnału; stary adres często pozostaje w wynikach |
| 307 | Tymczasowo (metoda pozostaje taka sama) | To samo co 302 |
Według Google Search Central indeksowanie traktuje przekierowanie stałe jako sygnał, że cel powinien stać się adresem kanonicznym. Przy przekierowaniu tymczasowym tak się nie dzieje: stary adres zwykle pozostaje w wynikach. Przejście z http na https oraz wybór wersji z www lub bez www to sytuacje trwałe. Prosimy więc używać 301 lub 308.
Przekierowanie mogą Państwo zobaczyć samodzielnie. W terminalu:
$ curl -sI http://example.com/
HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/Albo w przeglądarce: prosimy otworzyć narzędzia dla programistów (F12), kartę Sieć, włączyć opcję zachowywania dziennika przy wczytywaniu nowej strony i wczytać adres http. Zobaczą Państwo wtedy każdy krok wraz z jego kodem.
Łańcuchy przekierowań
Łańcuch przekierowań to przekierowanie na adres, który sam ponownie przekierowuje. Częsty przykład:
http://example.com/ 301 → https://example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200To działa, ale przy każdej pierwszej wizycie kosztuje dodatkową wymianę danych z serwerem. web.dev wymienia przekierowania jako jedną z przyczyn powolnej pierwszej odpowiedzi serwera (lekcja 4.3): każdy krok się sumuje, a łańcuchy jeszcze bardziej. Lepiej, gdy każda wersja w jednym kroku trafia na adres preferowany:
http://example.com/ 301 → https://www.example.com/
http://www.example.com/ 301 → https://www.example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200W przypadku starego adresu http z drugą nazwą nie zawsze udaje się to w jednym kroku, ponieważ przy niektórych ustawieniach serwer najpierw kieruje na https tej samej nazwy, a dopiero potem na drugą nazwę. Dwa kroki są wtedy do przyjęcia; trzy lub więcej to powód, aby sprawdzić ustawienia. Pętla (A przekierowuje do B, B z powrotem do A) jest zawsze błędem: strona wtedy w ogóle się nie otwiera.
HSTS: przeglądarka zapamiętuje
HSTS (HTTP Strict Transport Security, RFC 6797) to nagłówek, który serwer wysyła przez https:
Strict-Transport-Security: max-age=31536000Przeglądarka, która raz go zobaczyła, przy kolejnych wizytach na tej witrynie od razu sama łączy się przez https, bez wcześniejszej próby przez http. Oszczędza to pierwsze przekierowanie i chroni przed podsłuchiwaniem. web.dev wymienia HSTS również jako sposób na uniknięcie przekierowania z http na https. Dla wyszukiwarek HSTS nie jest sygnałem; dla Państwa odwiedzających jest usprawnieniem. Prosimy włączyć go dopiero wtedy, gdy https działa poprawnie dla wszystkich nazw, ponieważ przeglądarka pamięta to ustawienie tak długo, jak wskazuje max-age. Kurs WebOké o bezpieczeństwie w internecie omawia to szerzej.
Treści mieszane
Strona https, która wczytuje obraz, skrypt lub arkusz stylów przez http://, zawiera treści mieszane (mixed content). Przeglądarki blokują niezabezpieczone skrypty i arkusze stylów albo wyświetlają ostrzeżenie. Po przejściu na https zdarza się to często przy starych obrazach w tekstach lub w motywie ze stałymi adresami. Prosimy wyszukać w kodzie źródłowym src="http:// i href="http:// i zastąpić je adresem https lub adresem względnym.
W praktyce: konfiguracja przekierowania na https
W pakiecie hostingowym WebOké przekierowanie na https włączają Państwo w DirectAdmin w ustawieniach domeny (przełącznik „Wymuś SSL z przekierowaniem https”), a na tej samej stronie w opcji „Wymuś przekierowanie” wybierają Państwo, czy używają wersji z www, czy bez. Prosimy ustawić przekierowanie w jednym miejscu: dwie reguły, z których każda robi coś innego (na przykład w panelu i we wtyczce), łatwo tworzą pętlę. Witryna utworzona w AI Builder otrzymuje przy publikacji certyfikat i własny adres. W WordPress w menu Ustawienia, Ogólne wpisują Państwo w polach Adres WordPressa (URL) i Adres witryny (URL) adres z https:// i wybraną nazwą; samo przekierowanie konfiguruje się na serwerze. U innych dostawców i w innych kreatorach stron działa to podobnie, tylko przyciski nazywają się inaczej.
Jeśli wolą Państwo zrobić to w pliku .htaccess (Apache lub LiteSpeed), poniższe reguły przekierowują wszystkie wersje w jednym kroku na https://www.example.com:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]Następnie zawsze prosimy sprawdzić wszystkie cztery wersje, także ze ścieżką na końcu (http://example.com/contact): ścieżka musi zostać zachowana, a nie przeskakiwać na stronę główną.
Podsumowanie
- Prosimy wybrać jeden adres preferowany (https, z www lub bez) i przekierować do niego pozostałe wersje.
- Do trwałych przekierowań należy używać 301 lub 308; 302 i 307 są tymczasowe i nie dają Google sygnału co do adresu kanonicznego.
- Każda wersja powinna trafiać na adres preferowany w jednym kroku, najwyżej w dwóch; łańcuchy kosztują czas, a pętle psują witrynę.
- Według Google https jest słabym sygnałem rankingowym; dla odwiedzających to przede wszystkim kwestia zaufania. Certyfikat musi obejmować obie nazwy.
- HSTS sprawia, że przeglądarka sama przechodzi na https; treści mieszane należy uporządkować po przejściu na https.
Quiz
Zadanie
Zadanie A4.1: Czy wszystko przechodzi na https w jednym kroku? Prosimy wpisać nazwę domeny (bez www). Program sprawdza wszystkie cztery wersje (http i https, z www i bez), śledzi każde przekierowanie krok po kroku i weryfikuje certyfikat dla obu nazw. Dla każdej wersji zobaczą Państwo łańcuch z kodami statusu, informację, czy wszystkie trafiają pod ten sam adres https, oraz czy występuje nagłówek HSTS. Nie mają Państwo własnej witryny? Prosimy użyć rijksoverheid.nl.
Więcej informacji
Kroki opisane w tych artykułach dotyczą paneli WebOké; u innych dostawców działa to podobnie.
- Instrukcja DirectAdmin 6.4: Zawsze przekierowuj odwiedzających na https
- Instrukcja DirectAdmin 4.3: Ustawienia domeny: SSL, PHP, www i private_html
- Instrukcja DirectAdmin 6.3: Certyfikat dla www, subdomen i wildcard
- Wymuszone przekierowanie odwiedzających na https
- Bezpłatny kurs DNS 3.4: www, przekierowanie i czego DNS nie robi
- Google Search Central, Redirects and Google Search: https://developers.google.com/search/docs/crawling-indexing/301-redirects
- Google Search Central Blog, HTTPS as a ranking signal (2014): https://developers.google.com/search/blog/2014/08/https-as-ranking-signal
- RFC 6797 (HSTS): https://www.rfc-editor.org/rfc/rfc6797
