PORADNIKI

10 min. czytania

Co to jest .htaccess? Jak go używać?

Kod

Fot. Depositphotos

Co to jest plik .htaccess i jak z niego korzystać? Możliwości i przykłady wykorzystania do przekierowań, obsługi błędów, przyjaznych adresów, zabezpieczenia czy przyspieszenia strony.

Spis treści
Serwer

Nazwa .htaccess bardzo często przewija się wśród tematów dotyczących tworzenia stron internetowych, jednakże termin dla wielu osób pozostaje bardzo enigmatyczny. Warto podkreślić, że plik .htaccess daje bardzo szerokie spektrum możliwości sterowania pracą serwera www. Jest to więc zdecydowana podstawa zarówno wśród początkujących, jak i zaawansowanych użytkowników. W niniejszym tekście dowiesz się do czego służy plik .htaccess, w jaki sposób go wykonać i dlaczego warto to zrobić!

Czym jest .htaccess?

.htaccess to plik konfiguracyjny serwera WWW Apache pozwalający na ustawienie i zmianę konfiguracji za pomocą dyrektyw. Najczęściej stosowany do tworzenia przekierowań, przyjaznych adresów URL, obsługi błędów, zabezpieczenia hasłem czy włączania różnych funkcji w obrębie danego katalogu i jego plików oraz podkatalogów. Używany również przez serwery oparte o LiteSpeed.

Na samym początku warto wytłumaczyć skąd wzięła się sama nazwa pliku konfiguracyjnego. Otóż pochodzi ona bezpośrednio od skrótu dwóch słów – Hypertext Access.

Plik .htaccess umożliwia konfigurację wielu różnych funkcji, w przypadku serwerów Apache. Warto zaznaczyć, że dawniej plik .htaccess dostępny był wyłącznie dla serwerów Apache, jednakże dziś, można stosować go także na innych serwerach, takich jak chociażby LiteSpeed.

Plik .htaccess można znaleźć przeważnie w katalogu głównym, ponieważ z reguły to właśnie tam umieszczany jest on przez developerów. Technicznie rzecz biorąc, nic nie stoi na przeszkodzie, żeby stworzyć taki plik także w innych katalogach, jednakże z przyczyn praktycznych znajduje się on prawie zawsze właśnie w  katalogu głównym danej strony/domeny.

Jakie możliwości daje .htaccess?

Plik konfiguracyjny kojarzony jest głównie z możliwością konfiguracji przekierowań, jednakże .htaccess pozwala na zdecydowanie więcej. Możliwość wpływania na konkretne zachowania serwera www Apache zależy właśnie od pliku konfiguracyjnego. Pełne zastosowanie tego pliku możliwe jest tylko wtedy, gdy użytkownik wie, jakich komend należy użyć. Należy jednocześnie zauważyć, że każda zmiana wprowadzana w pliku .htaccess widoczna jest natychmiast.

Do najważniejszych możliwości pliku konfiguracyjnego należą takie opcje, jak:

  • Tworzenie przekierowań (301 i innych),
  • Przekierowanie na inną domenę,
  • Zmiana wersji PHP,
  • Możliwość tworzenia tzw. przyjaznych adresów URL,
  • Przekierowanie na wersję zabezpieczona protokołem HTTPS
  • Blokowanie konkretnych adresów IP,
  • Przyspieszenie ładowania strony – kompresja Gzip lub Brotli.
  • Blokowanie konkretnych sekcji strony za pomocą hasła,
  • Przekierowanie na wersję z www i na wersję bez www,
  • Zablokowanie linkowania bezpośredniego,
  • Uruchomienie cache przeglądarki
  • Własne strony błędów.

Tworzenie przekierowań (np. 301, 302)

Ten rodzaj przekierowania służy do przeniesienia użytkownika na inny adres. Warto w tym miejscu zaznaczyć, że funkcja ta jest szczególnie przydatna przy pozycjonowaniu strony. W celu podmiany domeny należy posłużyć się modułem mod_rewrite, jednakże, aby z niego skorzystać, trzeba go najpierw uruchomić za pomocą poniższej komendy, która musi być umieszczona w linii kodu przed wykonaniem pierwszego przekierowania:

RewriteEngine On
Redirect 301 /stary-adres/ https://przykladowastrona.pl/nowy-adres/

Warto podkreślić, że niezwykle istotna jest także kolejność reguł, ponieważ zawsze są one wykonywane w kolejności znajdującej się w pliku .htaccess.

Jeśli chodzi o przekierowania, to numer 301 jest typem przekierowania, dlatego zmieniając np. 301 na 302, zmieniamy typ przekierowania. W tym przypadku przekierowanie 301 jest stałym odesłaniem odwiedzających na nowy adres URL. Przekierowanie 302 jest tylko tymczasowe, przez co stary adres nie zostaje usunięty, dalej widnieje w wyszukiwarce na wypozycjonowanym miejscu.

Przekierowanie na inną / nową domenę

Przekierowanie na inną domenę jest bardzo przydatną opcją. Jeśli Twoja strona znajduje się obecnie pod innym adresem, to dzięki odpowiedniej konfiguracji pliku konfiguracyjnego, możemy przekierować użytkownika na nową domenę. Kod wygląda w takim przypadku w następujący sposób:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domena-źródłowa\.pl [NC] RewriteRule (.*) https://domena-docelowa.pl/$1 [R=301,L]

Zmiana wersji PHP

Jeśli chcesz zmienić wersję PHP, to wystarczy wówczas przygotować odpowiedni wpis w pliku .htaccess. Warto podkreślić, że sposoby na zmianę PHP zależne są od konkretnego hostingu.

Przeczytaj też: Jak sprawdzić wersję PHP?

W przypadku wielu hostingów wystarczy wejść w plik .htaccess i wpisać kod:

AddHandler application/x-httpd-php80 php

…jeżeli chcemy zmienić PHP na wersję 8.0. Analogiczne wygląda to w przypadku wszystkich pozostałych wersji PHP.

Na innym hostingu na wystarczy wpisać w pliku .htaccess kod:

<FilesMatch "\.(php4|php5|php7|php3|php2|php|phtml)$">
 SetHandler application/x-lsphp80
</FilesMatch>

Dotyczy to oczywiście wersji 8.0 i tak samo wygląda zmiana na każdą inną wersję PHP.

Warto w tym miejscu wspomnieć, że zmiana wersji PHP w dużej mierze zależy od dostawcy hostingu, dlatego konkretnych instrukcji zawsze należy szukać u swojego usługodawcy.

Przekierowanie na wersję zabezpieczona protokołem HTTPS

Protokół szyfrowany jest zabezpieczeniem, na które powinni zdecydować się wszyscy właściciele serwisów i stron, które pozyskują i przechowują dane klientów – w praktyce dotyczy to tak naprawdę wszystkich. Warto podkreślić, że odpowiednie ustawienia pliku .htaccess pozwalają na przekierowanie z nieszyfrowanej wersji strony, na tę szyfrowaną z certyfikatem SSL:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Więcej informacji o przekierowaniu HTTPS możesz dowiedzieć się ze szczegółowego poradnika o tym, jak uruchomić SSL na WordPressie i nie tylko.

Blokowanie adresów IP

Opcja ta jest szczególnie przydatna, gdy chcemy zablokować konkretnych użytkowników (np.trolli), lub boty, które często skanują witrynę, niepotrzebnie ją obciążając, aby zablokować konkretne adresy IP, należy wprowadzić w pliku .htaccess następujący zapis:

order allow,deny
deny from 192.147.2.23
deny from 212.85.112.3
allow from all

Wyżej wymienione adresy są oczywiście jedynie przykładowe, dlatego w ich miejsce należy wpisać adresy, które chcemy zablokować.

Przyspieszenie ładowania strony – kompresja

Kompresja Gzip sprawia, że dane ładują się znacznie szybciej, co bezpośrednio przekłada się na szybsze wczytanie się strony. W celu włączenia Gzip, należy w pliku .htaccess zastosować następujący zapis:

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/x-javascript text/plain text/xml image/x-icon
</IfModule>

Warto w tym miejscu wspomnieć o tym, że Gzip to nie jedyny sposób na szybsze ładowanie się strony poprzez kompresję danych. Bardzo popularnym i coraz bardziej powszechnym sposobem jest Brotli, czyli algorytm stworzony przez Google.

Co ciekawe, Brotli jest w stanie kompresować strumienie danych z efektywnością większą o 17%, w porównaniu do Gzip.

Po instalacji na serwerze (lub po prostu – jeśli nasz hosting obsługuje taką technologię) należy wprowadzić odpowiedni zapis w pliku .htaccess:

<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/x-javascript application/javascript application/json application/x-font-ttf application/vnd.ms-fontobject image/x-icon
</IfModule>

Ciekawostka – Brotli na samym początku służył do kompresowania fontów internetowych, jednakże od 2015 roku można go używać także do kompresji HTTP.

Blokowanie konkretnych sekcji strony za pomocą hasła

Blokowanie konkretnych sekcji i katalogów strony jest bardzo przydatnym rozwiązaniem, pod kątem bezpieczeństwa. Kod, który trzeba wpisać w plik .htaccess, to:

AuthUserFile "/home/xxx/.htpasswds/public_html/xxx/xxx/passwd"
AuthType Basic
AuthName "Dostęp zablokowany. Wprowadź hasło."
Require valid-user

Co więcej, ten kod wpisujemy, kiedy chcemy zablokować konkretny plik:

AuthType Basic
AuthName "Dostęp zablokowany. Wprowadź hasło."
AuthUserFile /public_html/pass/.htpasswd
<Files nazwa_pliku.php>
Require valid-user
</Files>

Dodanie takiego wpisu wymaga jeszcze utworzenia pliku z loginem i hasłem, do którego wskazuje ścieżka w AuthUserFile. Dlatego też najprostszą metodą na blokadę konkretnych katalogów strony jest wejście w odpowiednie opcje w panelu zarządzania hostingiem – wówczas taki wpis tworzy się w pliku .htaccess automatycznie.

Blokowanie linkowania bezpośredniego

Blokowanie linkowania bezpośredniego (hotlinkowania) jest szczególnie przydatne w przypadku małych hostingów, ponieważ ogranicza możliwość korzystania z przepustowości serwera. W celu zablokowania linkowania bezpośredniego należy wpisać w pliku konfiguracyjnym:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?przykladowastrona.pl/.*$ [NC]

Przekierowanie na wersję z www i na wersję bez WWW

Strony internetowe występują zwykle w dwóch wersjach, czyli w wersji z www, jak i bez www. Z punktu widzenia pozycjonowanie dobrze jest przekierować strony do jednej z wersji, aby była ona tą domyślną i to ona pozycjonowała się właściwie. Trzeba wówczas wpisać w .htaccess kod:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^przykład.com$ [NC]
Rewrite Rule ^(.*)$ https://przyklad.com/$1 [R=301,L]

Tworzenie przyjaznych adresów URL

Bardzo często URL do poszczególnych podstron składają się z ciągów liter i znaków. Nie lubią tego zarówno użytkownicy, jak i boty Google, dlatego tworzenie przyjaznych linków jest zdecydowanie korzystnie.

Jeżeli nasz link wygląda w ten sposób – przyklad.com/index.php?option=com_content&task=category§ionid=1&id=1&Itemid=2

To wówczas trzeba wpisać w .htaccess ten kod –

RewriteEngine on
RewriteRule ([^-]+)/(category)/([^-]+)-(.*)([0-9]+)$ index.php?option=&task=§ionid=&id=&Itemid= [L]

Wówczas otrzymamy taki, skrócony i przyjazny zarówno dla botów Google, jak i dla użytkowników link – przyklad.com/com_content/category/1-12

Upraszczając, tworzenie przyjaznych linków wymaga tak naprawdę tylko i wyłącznie wpisania kodu RewriteRule ([^-]+)/(category)/([^-]+)-(.*)([0-9]+)$ w pliku .htaccess. Po znaku „$” należy wpisać ścieżkę, którą chcemy „uprzyjaźnić” i wówczas nasze linki przestaną straszyć zarówno użytkowników, jak i boty Google 😉

Uruchomienie cache przeglądarki

Wykorzystywanie plików podręcznych przeglądarki, to bardzo dobry sposób na większą prędkość ładowania strony. Dzieje się tak, ponieważ otwieranie każdej witryny wiąże się z pobieraniem wielu elementów samej strony, takich jak pliki CSS, czy JavaScript, logo i inne pliki graficzne. Włączenie cache przeglądarki pozwala zatem zapisywać najważniejsze, powtarzające się na innych podstronach elementy (logo, grafiki, CSS’y) nie muszą się ponownie ładować. Uruchomienie cache przeglądarki możliwe jest za pomocą modułu expires , przez dodanie w pliku .htaccess odpowiedniego kodu:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A600
ExpiresByType text/javascript A604800
ExpiresByType application/javascript A604800
ExpiresByType text/css A604800
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
ExpiresByType image/x-icon A604800
ExpiresByType text/html A60
</IfModule>

Własne strony błędów

Dzięki plikowi .htaccess możliwe jest tworzenie własnych stron błędów, takich jak błąd 401, czy błąd 404. W celu stworzenia takiej strony należy użyć kodu:

ErrorDocument 401 https://domena.pl/errors/401.htm

Warto dodać, że należy podmienić kod błędu i podać adres URL, który ma być wyświetlana. Dzięki temu w momencie wystąpienia błędu na ekranie użytkownika pojawi się własna strona danego błędu.

To oczywiście tylko niektóre przykładowe zastosowania pliku konfiguracyjnego. Warto zauważyć, że ze względu na szeroki wachlarz możliwości pliku .htaccess bardzo często korzystają z niego specjaliści od SEO, ponieważ przyjazne linki, czy kompresja strony w zdecydowanym stopniu wpływają na pozycjonowanie w wynikach wyszukiwarek internetowych.

W jaki sposób utworzyć plik .htaccess?

Plik konfiguracyjny .htaccess jest zwykłym plikiem tekstowym, dlatego też może być on stworzony lub edytowany za pomocą najprostszego edytora tekstu, takiego jak chociażby Notatnik w systemie Windows.

Warto zaznaczyć, że składnia pliku jest identyczna, jak ma to miejsce w przypadku innych plików konfiguracyjnych httpd. Dlatego też każda reguła zapisywana jest w osobnej linii, która musi zaczynać się od nazwy dyrektywy. Linie zaczynające się od znaku # stanowią komentarze pliku .htaccess. Należy pamiętać o zasadzie braku pustych „enterów”, zarówno na początku, jak i na końcu treści pliku.

Czym są generatory .htaccess?

Jeżeli jesteś początkującym programistą lub tylko hobbystycznie zajmujesz się stronami internetowymi i przeraża Cię skomplikowany język programowania, to spokojnie możesz skorzystać z generatorów .htaccess, które wykonują treść takiego pliku konfiguracyjnego za sprawą zaledwie kilku kliknięć myszką.

Jest to szybkie i bezproblemowe rozwiązanie dla wszystkich tych, którzy w programowaniu i budowie stron internetowych nie czują się jeszcze zbyt pewnie. W generatorze można ustalić wszystkie najważniejsze parametry, takie jak włączenie kompresji GZip, przekierowania strony, czy blokowanie konkretnych adresów IP. Możemy użyć zatem jednego z takich generatorów, jak np.:

Dlaczego warto stworzyć plik .htaccess?

Za pomocą pliku .htaccess możliwe jest wykonywanie wielu istotnych czynności odnośnie do strony internetowej. Zarządzanie serwerem www dzięki plikowi konfiguracyjnemu jest sprawne i proste. Warto dodać, że dzięki konkretnym komendom możemy zwiększyć prędkość ładowania strony poprzez Gzip lub Brotli. Kompresja danych wpływa na to, w jakim czasie ładuje się dana witryna, co jest dziś szczególnie istotne, ponieważ internauci i Google nie lubią stron, które ładują się wolno.

Wiele działań, takich jak chociażby  przyjazne linki, wpływa także pozytywnie na pozycjonowanie strony, dlatego specjaliści od SEO zawsze używają pliku .htaccess w swojej codziennej pracy. Warto podkreślić, że plik konfiguracyjny może być także z powodzeniem stosowany w przypadku witryn powstałych w jednym z najpopularniejszych CMSów, czyli w WordPressie. Okazuje się bowiem, że odpowiednio skonfigurowany plik .htaccess ma znaczący wpływ na prawidłowe działanie strony.