W sieci ile wpisów tyle rozwiązań. Dla wordpressa dziesiątki wtyczek. Jednak jakie jest jedyne słuszne i najlepsze przekierowanie 301 wszystkich możliwych adresów indeksowych oraz z HTTP na HTTPS, które mogą powodować problemy. Sprawdź jaki jest właściwy zapis przekierowań.
Jak sprawdzić przekierowanie http na https?
Agencje SEO rekomendują przekierowanie wszystkich adresów – także plików indeksowych. Oczywiście bez podwójnych przekierowań czy pętli. Jak zatem wykonać przekierowania wszystkich adresów? Jak sprawdzić czy moja strona ma dobre przekierowania? Wchodzimy na stronę: https://httpstatus.io/ wklejamy tam listę możliwych (także plików indeksowych) adresów takich jak w poniższym przykładzie:
http://www.piestrzynski.info https://www.piestrzynski.info http://piestrzynski.info https://piestrzynski.info http://piestrzynski.info/index.php http://www.piestrzynski.info/index.php https://piestrzynski.info/index.php https://www.piestrzynski.info/index.php http://www.piestrzynski.info/index.html https://www.piestrzynski.info/index.html http://piestrzynski.info/index.html https://piestrzynski.info/index.html http://www.piestrzynski.info/index.htm https://www.piestrzynski.info/index.htm http://piestrzynski.info/index.htm
Zastępując „piestrzynski.info” swoją domeną. To wszystkie możliwe adresy indeksowe, https i z http oraz z i bez www.
Taką listę można wypisać ręcznie lub wygenerować sobie skryptem dla konkretnej domeny. Można też skorzystać z poniższego narzędzia do generowania listy adresów url:
Generator linków indeksowych i https
Domena:
Wpisz nazwę domeny bez www i z końcówką np. domena.pl
https://www.
http://
https://
http:///index.php
http://www./index.php
https:///index.php
https://www./index.php
http://www./index.html
https://www./index.html
http:///index.html
https:///index.html
http://www./index.htm
https://www./index.htm
http:///index.htm
https:///index.htm
Teraz wystarczy skopiować i skorzystać z https://httpstatus.io/, nim to jednak zrobisz, sprawdź jak wygląda wynik tego testu.
Błędny wynik:
Błędny wynik to taki, w którym pojawiają się podwójne przekierowania, ich całkowity brak czy błędy 404. Trzeba na to szczególnie zwrócić uwagę, jeśli przekierowujemy serwis z http na https czyli stronę z certyfikatem ssl. Ze względu na ostatnie wprowadzone zmiany w algorytmie wyszukiwarki Google (2017), warto to zrobić. Szczególnie jeśli na stronie posiadamy formularze czy sprzedajemy usługi lub produkty. Nie będę tu dyskutował na ile wdrożony certyfikat ssl wpływa na pozycje strony. Ważne są prawidłowe przekierowania. Jak zatem powinien wyglądać prawidłowy output?
Zapis przekierowań 301 w pliku .htaccess
Poniższy kod, warto przykleić do swojego pliku .htaccess upewniając się czy nie ma konfliktu z pozostałymi przekierowaniami. Jeśli wszystko jest ok, należy powtórzyć test. Wówczas naszym oczom powinna ukazać się taka lista wyników:
Przekierowanie domeny bez www (z http na https)
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} domena.pl RewriteCond "%{THE_REQUEST}" "^.*/index\.(php|htm|html) " [NC] RewriteRule ^(.*)index\.(php|htm|html)$ https://domena.pl/$1 [R=301,NC,L] RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} domena\.pl$ [NC] RewriteRule .* https://domena.pl%{REQUEST_URI} [R=301,L] RewriteCond %{HTTP_HOST} www\.domena\.pl$ [NC] RewriteRule .* https://domena.pl%{REQUEST_URI} [R=301,L] </IfModule>
Przekierowanie domeny z www (z http na https)
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} domena.pl RewriteCond "%{THE_REQUEST}" "^.*/index\.(php|htm|html) " [NC] RewriteRule ^(.*)index\.(php|htm|html)$ https://www.domena.pl/$1 [R=301,NC,L] RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} domena\.pl$ [NC] RewriteRule .* https://www.domena.pl%{REQUEST_URI} [R=301,L] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{HTTP_HOST} domena\.pl$ [NC] RewriteRule .* https://www.domena.pl%{REQUEST_URI} [R=301,L] </IfModule>
Powyższy kod umożliwi przekierowanie https oraz przekierowanie plików indeksowych. Dzięki temu, nie będziesz musiał martwić się o ewentualne błędy.
a.. Czy Ty masz prawidłowo przekierowane wszystkie adresy?
Przypomniałem sobie jeszcze o jednym ważnym elemencie na końcu każdego adresu url. Pamiętacie ten obrazek?
I noticed there was some confusion around trailing slashes on URLs, so I hope this helps. tl;dr: slash on root/hostname=doesn’t matter; slash elsewhere=does matter (they’re different URLs) pic.twitter.com/qjKebMa8V8
— John ☆.o(≧▽≦)o.☆ (@JohnMu) 19 grudnia 2017
Check Lista po wdrożeniu certyfikatu https
- Sprawdzić poprawność wdrożenia certyfikatu: https://www.ssllabs.com/ssltest/
- Sprawdzić przekierowania http (http na https)
- Wskazać adresy kanoniczne (<rel=”canonical” href=””>)
- Zaktualizować linki wewnętrzne (także do zasobów JS, CSS itp)
- Zaktualizować linki przychodzące (na ile to możliwe)
- Zaktualizować (dodać wpis) Google Search Console
- Zaktualizować linki w sitemapie
- Zaktualizować link do sitemapy (z https) w pliku robots.
Udostępnij ten wpis swoim znajomym, może im też przyda się poprawne przekierowanie adresów!
Witam,
Super poradnik ale mam malutki problem. Niestety ale nie przekierowuje mi https://www.strona.pl/index.html (tak, zostaje WWW!) oraz https://strona.pl/index.html na strona.pl (bez index). Wszystkie inne przekierowania z index (index.html i .php) działają. Może to dlatego, że index.html to jedyny z tych trzech który rzeczywiście istnieje? Jaki może być tego powód?
Pozdrawiam
Nie powinno mieć to miejsca. Proszę o kontakt przez formularz na blogu, postaram się pomóc 🙂
dobry artykuł
Bardzo przydatny wpis, pomógł mi ogarnąć linki do strony jakie się duplikowały przez to że strona była dostępna i na trybie bezpiecznym i zwykłym jednocześnie. Teraz już ten problem nie występuje.
mega super poradnik!!!
Bardzo mi pomógł!!!
Cieszę się, że mogłem pomóc!
Dobry artykuł, ale dla tych co się na tym znają ,,,
Ja mam w jednym miejscu dwa przekierowania, certyfikat około roku temu wprowadzałem, przekierowania robiłem wtyczką Really Simple SSL , kłódka na pasku jest zielona , więc wydawało mi się że jest ok.
Rozumiem że powonieniem wkleić dwa kody , które Pan podał, ale czy może Pan napisać jak usunąć te pozostałe przekierowania ???
Czy nie zrobią mi się teraz potrójne, podwójne przekierowania??
Jeżeli znajdzie Pan czas to proszę o odpowiedź.
Dziękuję za artykuł i pozdrawiam
Marek
To rozwiązanie nie wymaga żadnej dodatkowej wtyczki. Proszę wcześniej wyłączyć wtyczkę, wybrać jeden z odpowiadających Pana wersji strony kod (czyli z www czy bez www) i takowy umieścić – upewniając się czy w pliku htaccess nie ma konfliktu z innymi wpisami dotyczącymi przekierowań. Zapraszam ponownie 🙂
Świetny artykuł. Zrobiłam wszystko zgodnie z instrukcją, ale niestety mam podwójne przekierowania. Nie mam pojęcia gdzie szukać winowajcy.
Upewnij się, czy nie masz już przekierowań wykonanych za pomocą innej wtyczki 🙂
Bardzo przydatna funkcja, tego mi brakowało w softach do audytu. Teraz będzie dużo prościej to sprawdzać- zawsze robiłem ręcznie.
Poradnik świetny. Wprowadziłem tą regułę w witrynie opartej na Joomla. Niestety wystąpił problem z logowaniem do zaplecza. Może jakaś wskazówka jak postąpić w takiej sytuacji?
Trzeba eliminować poszczególne linie wpisu w HTACCESS. Być może jest konflikt z istniejącymi? To częsty problem.
Bardzo zwięźle przedstawione zagadnienie. Pozwala skutecznie wyeliminować problemy z przekierowaniami. Dziękuję za pomoc.
Odnośnie wypowiedzi Marka: „Dobry artykuł, ale dla tych co się na tym znają ,,, Ja mam w jednym miejscu dwa przekierowania…”
Zgodnie z sugestią Dominika należy się upewnić czy nie ma konfliktu z przekierowaniami wykonanymi inną techniką. Może być np. ustawione przekierowanie w directadminie. Jeżeli stosujemy wyżej podany kod w .htaaccess to należy najpierw wyłączyć wymuszenie przekierowań w directadminie dla konfigurowanej domeny.
Dziękuję za to wskazanie 🙂