Plik htaccess jest plikiem konfiguracyjnym, niezbędnym do prawidłowego działania stron i aplikacji. Definiuje on konkretne reguły, wedle których „zachowuje się” dana witryna w wybranych sytuacjach. Tego typu plik pozwala więc zdefiniować m.in. przekierowanie z www, przekierowanie na www, na strony z błędami (np. 301), zabezpieczenie hasłem dostępu jakiegoś sektora, banowania wybranych IP, ustawienia strony startowej, zmianę wyglądu adresów www, czy przekierowywanie podstron.
Dawniej taka konfiguracja była stosowana wyłącznie w Apache, dzisiaj – za pośrednictwem specjalnych modułów – jest dostępna także na innych serwerach. Dlaczego htaccess jest tak chętnie stosowany? Przede wszystkim pozwala na skonfigurowanie wielu parametrów serwera. Plik ten jest umieszczany w specjalnym katalogu, ale działa również w wybranych podkatalogach. W jego ramach mogą funkcjonować niezależne pliki htaccess (w dużej liczbie) definiujące różne akcje, w tym wspomniane już przekierowanie 301 czy htaccess rozszerzenia plików.
O czym trzeba pamiętać, zanim zaczniemy z nich korzystać? Po pierwsze, wpisywanie komend w ich składni wymaga wciśnięcia klawisza Enter na końcu każdej linii. Po drugie, zazwyczaj nie warto stosować htaccess wtedy, kiedy mamy dostęp do głównych plików konfiguracyjnych serwera, ponieważ mogą mieć wpływ na obniżenie jego wydajności. Po trzecie, jest to rozwiązanie zalecane przede wszystkim dla osób wykupujących hosting.
Jak stworzyć taki plik? Wystarczy użyć w tym celu edytora tekstowego, najlepiej notatnika w przypadku systemów Windows. Inna opcja to skorzystanie z edytora plików z poziomu managera na serwerze. W pierwszym przypadku (notatnik) gotowy plik należy wrzucić na serwer za pomocą klienta FTP. Trzeba wybrać w tym celu taki program, który wyświetli również ukryte pliki. Plik htaccess umieszczamy w głównym folderze przy pliku index.html.
Bez wątpienia najważniejszą, wymagającą uwagi funkcją są tutaj przekierowania htaccess. Dyrektywy htaccess można uzyskać za pomocą specjalnego generatora online, który utworzy dla nas kody z prostymi konfiguracjami. Przykładowe, przydatne przekierowania i reguły htaccess to:
- Przekierowanie na https, czyli na szyfrowaną stronę:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.(.*) [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- Przekierowanie do logowania na skrzynkę pocztową dla subdomeny:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/roundcube
RewriteRule ^(.*)$ /roundcube/$1
- Przekierowanie na www (dla stron bez przedrostka www):
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.(.*) [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
- Przekierowanie na katalog („new” to nazwa katalogu):
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/new
RewriteRule ^(.*)$ /new/$1
- Przekierowanie na domenę bez przedrostka www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
- Przekierowanie 301:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domena-stara\.pl [NC]
RewriteRule (.*) http://domena-nowa.pl/$1 [R=301,L]
- Przekierowanie subdomeny na inną domenę:
Redirect 301 /oldpage.php http://www.example.com/newpage.html
Redirect 301 /oldpage2.php http://www.example.com