Zastosowanie pliku .htaccess jest bardzo częsta praktyką. Najczęściej wykorzystuje się go, gdy zachodzi konieczność lokalnej zmiany konfiguracji ustawień serwera WWW, dotyczących witryny na której pracujemy. Jeśli nie mamy możliwość zmiany konfiguracji poprzez panel administracyjny konta hostingowego, wówczas możemy próbować dokonać jej modyfikując właśnie plik .htaccess. Plik ten najczęściej znajduje się w folderze głównym witryny, dla której dokonujemy zmian, czyli tym samym, w którym znajduje się plik główny np. index html. Modyfikacje najczęściej dotyczą mechanizmów przepisywania adresów URL (rewrite), blokowania adresów IP (wszelkiego rodzaju podejrzane aktywności), kontroli cache (wydajność witryny), przekierowań użytkownika na inne strony (np. 301).
Już od jakiegoś czasu zalecane jest udostępnianie stron www z wykorzystaniem połączenia szyfrowanego, czyli https. Po ostatnich aktualizacjach norm prawnych dotyczących przetwarzania, przechowywania, zarządzania danymi użytkowników staje się to wręcz wymogiem. Certyfikat SSL można zakupić u wielu dostawców lub próbować korzystać z darmowego rozwiązania np. Let’s Encrypt. Być może hostingodawca, z którego usług korzystamy, udostępnia takie rozwiązanie.
Niezależnie od tego, co wybierzemy, w ramach serwera www musimy dokonać stosownych zmian. W tym artykule omawiany jest sposób modyfikacji pliku .htaccess, tak aby każde wywołanie naszej strony, odbywało się z wykorzystaniem połączenia https. Przyjmujemy założenie, że posiadamy już zainstalowany certyfikat dla naszej strony www i odpowiadającej jej domeny.
Plik .htaccess to tak naprawdę plik tekstowy, możemy zatem dokonać jego zmiany w dowolnym edytorze obsługującym plain text. Oczywiście, jeśli taki plik nie istnieje w ramach folderu głównego – tworzymy go.
Poniższe dyrektywy odpowiadają za przekierowanie ruchu z wywołania nieszyfrowanego na szyfrowane. Co za tym idzie, jeśli użytkownik w przeglądarce, w pasku adresu poda adres np.
http://www.dowolnadomena.pl
zostanie automatycznie skierowany na adres zabezpieczony certyfikatem SSL:
https://www.dowolnadomena.pl
Wpis w pliku .htaccess:
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.dowolnadomena.pl/$1 [R,L]
W ramach tego przykładu warto jeszcze wspomnieć o przekierowaniu z adresu nie posiadającego (lub nie wpisanego przez użytkownika) www przed nazwą domeny, na taki posiadający ten prefix. Często chcąc uniknąć duplikowania adresów (głównie ze względu na wyszukiwarkę Google), kiedy jest ruch z adresów:
https://dowolnadomena.pl
na
https://www.dowolnadomena.pl
lub odwrotnie. Wszystko zależy od tego jaka forma adresu jest dla nas odpowiednia, również ze względów technicznych. Chcąc zatem przekierować użytkownika na domenę z www umieszczamy w pliku .htaccess następujące dyrektywy.
RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]