Nie od dziś wiadomo, że Google kładzie duży nacisk na bezpieczeństwo prezentowanych na stronach treści. Od zeszłego roku, kiedy to na oficjalnym blogu Google pojawiła się informacja, że do grona sygnałów wpływających na ranking strony dołączy to czy domena jest zabezpieczona certyfikatem SSL, zapanowała moda na zabezpieczanie w ten sposób stron. W dzisiejszym wpisie pokaże jak ustawić przekierowanie 301 z http na https w pliku .htaccess w celu uniknięcia zduplikowanej treści w obrębie domeny.
Dlaczego Przekierowanie 301 z http na https?
Zakładam, że masz już poprawnie zainstalowany certyfikat SSL na swojej domenie i możesz przeglądać treść witryny za pośrednictwem tego protokołu. Jeśli certyfikat nie został poprawnie zainstalowany wraz z odpowiednim przekierowaniem w pliku .htaccess lub na poziomie aplikacji istnieje ryzyko, że to Twoja strona jest widoczna dla robota zarówno pod adresem z http, jak i https. Taka sytuacja naraża Cie na zaindeksowanie tej samej treści pod dwoma zupełnie odrębnymi adresami. Tym samym w indeksie znajdzie się dokładna kopia Twojego serwisu. Innym przypadkiem może być sytuacja, kiedy treść pod adresem z http zostanie usunięta i przeniesiona na adres z https. W takim przypadku wczęśniej zdobyte linki będą kierowały do nieistniejących podstron. W celu uniknięcia tego typu sytuacji musimy powiedzieć robotowi Google, że treść wszystkich podstron w serwisie jest dostępna pod nowymi adresami URL. Jedną z prostszych metod osiągnięcia tego efektu jest ustawienie przekierowania 301 w pliku .htaccess.
Ustawiamy w Pliku .htaccess Przekierowanie 301 z http na https
Jeśli Twoja strona ma przyjazne odnośniki i oparta jest o system zarządzania treścią CMS ( np. WordPress, Drupal, Joomla lub inny ) prawdopodobnie na serwerze Twojej strony znajduje się już plik .htaccess i nie musisz go tworzyć. W takim przypadku wystarczy, że w pliku .htaccess dodasz:
RewriteEngine On #prawdopodobnie jest już Twoim .httaccess RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://www.twojadomena.pl/$1 [R=301,L]
Ustawiamy w Pliku .htaccess przekierowanie z https na http
Jeśli natomiast nie planujesz odnawiać swojego certyfikatu SSL lub z innego powodu chcesz wrócić do wersji witryny w http, możesz odwrocić sytuację przez dodanie do pliku htaccess poniższych zapisów:
RewriteEngine On #prawdopodobnie jest już w Twoim .htaccess RewriteCond %{SERVER_PORT} ^443$ [OR] RewriteCond %{HTTPS} =on RewriteRule ^(.*)$ http://www.twojadomena.pl/$1 [R=301,L]
Podsumowanie
Podałem dwa proste przykłady w jaki sposób za pomocą htaccess przekierować robota Google pod nowe adresy z https://. Można powyższe przykłady rozszerzać o wykluczenia podstron, które nie mają być objęte przekierowaniem itd.
Jeśli w ostatnim czasie na Twojej stronie został zainstalowany certyfikat SSL i nie zostały ustawione przekierowania 301 prawdopodobnie problem na Twojej stronie występuje. Jeśli masz problem z ustawieniem przekierowania 301 w pliku .htaccess lub potrzebujesz bardziej zaawansowanej konfiguracji napisz o tym w komentarzu pod wpisem 🙂
Cześć! Czy ta metoda przekierowania, przekierowuje automatycznie całą witrynę? Czy trzeba każdą stronę z osobna przekierowywać?
Regułka działa dla całej witryny 🙂
Po przekopaniu połowy googla udało się znaleźć działający w moim przypadku kod. Dzięki!
Dzięki. Na kilku stronach szukałem jak ustawić takie przekierowanie. Dopiero Twoja regułka u mnie załapała 🙂 Pozdrawiam.
dzięki za info wstawione i działa tylko główna nie świeciła się na zielono natomiast to spowodowane z kolei było tym że wszystkie linki – wczytanie js etc. musi isć po https 🙂