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]
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.