.htaccess (na początku nazwy musi znajdować się kropka) jest plikiem, który po umieszczeniu na webhostingu umożliwia wprowadzanie zmian w konfiguracji i działaniu Twojej strony.
Umieszczenie pliku w folderze www Twojego webhostingu spowoduje, że zawarte w nim reguły będą miały zastosowanie do całej strony. Plik możesz umieścić także w podkatalogu, wtedy reguły będą odnosiły się tylko do tego katalogu, włącznie z dostępnymi w nim podkatalogami i plikami.
.htaccess umożliwia:
- ustawienie stron błędów (np. co ma być wyświetlone w przypadku nieistniejącej strony)
- przekierowanie
- ograniczenie dostępu do strony lub jego części na podstawie adresów IP odwiedzających
- zahasłowanie dostępu do katalogu lub pliku
- moduł mod_rewrite – przepisywanie adresów URL (tzw. „ładne“ URL)
- tworzenie subdomen
W konfiguracji serwera WWW dozwolone są następujące kategorie poleceń dla htaccess:
- AuthConfig
- FileInfo
- Limit
- Indexes
W plikach .htaccess na webhostingu nie mogą być użyte:
- php_flag
- php_value
- ServerSignature
- SetHandler
- XBitHack
- AddHandler
W przypadku polecenia Options dozwolona jest jedynie opcja Indexes, korzystanie z pozostałych opcji nie jest możliwe.
Uwaga! Użycie jakiegokolwiek niedozwolonego polecenia czy parametru w poleceniu Options będzie skutkować niedostępnością całej strony, która przejawi się przez wyświetlenie błędu 500 – Internal Server Error.
Nasz domyślny /www/.htaccess
RewriteEngine On
#
cale domeny
(aliasy)
RewriteCond %{REQUEST_URI} !^domains/
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) domains/%2/$1 [DPI]
# subdomeny (
z lub bez www na początku
)
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) subdom/%2/$1 [DPI]
# aliasy –
poprawne przekierowanie przy brakującym
/
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]
# subdomeny -
poprawne przekierowanie przy brakującym
/
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]