.htaccess
.htaccess – domyślna nazwa pliku konfiguracyjnego serwera Apache, który umożliwia zmianę konfiguracji dla konkretnego katalogu. Plik konfiguracyjny może zostać utworzony w każdym katalogu, umożliwiając dodanie nowych lub zmianę istniejących dyrektyw ustawionych w głównym pliku konfiguracyjnym (httpd.conf). Zmienione ustawienia obowiązują dla danego katalogu jak i dla wszystkich podkatalogów, jeśli tylko dany podkatalog nie jest skonfigurowany jako osobny podserwer – należy zapamiętać, że w takim przypadku dziedziczenie ustawień zawartych w .htaccess nie zadziała.
Za pomocą specjalnych dyrektyw możliwe jest m.in. wskazywanie stron www wyświetlanych w odpowiedzi na różne komunikaty błędów serwera (np. 404), lub np. ograniczanie dostępu do zasobów znajdujących się na danym serwerze.
Plik konfiguracyjny odczytywany jest podczas każdego żądania dotyczącego plików danego katalogu, a więc jego modyfikacja znajduje natychmiastowe odzwierciedlenie w zachowaniu się serwera.
Przykłady
Poniżej znajdują się komendy definiujące jaki tekst (bądź strona) ma zostać wyświetlony przy wystąpieniu określonego błędu. Tekst musi być ujęty w cudzysłowy.
ErrorDocument 404 "Na serwerze nie ma takiego dokumentu" ErrorDocument 403 /plik403.html
W celu określenia domyślnego pliku strony www należy skorzystać z dyrektywy DirectoryIndex. Możemy podać kilka nazw plików oddzielając je kolejno spacjami. Kolejność ma znaczenie, ponieważ jeśli w katalogu nie ma pliku o danym rozszerzeniu (bądź nazwie), serwer automatycznie będzie próbował załadować plik o rozszerzeniu które jest podane jako następne.
DirectoryIndex index.html index.xhtml index.php glowna.html glowna.xhtml #odczytuje index.html, a jeśli nie ma, to index.xhtml, a jeśli nie ma, to index.php, a jeśli nie ma, to glowna.html, a jeśli nie ma, to glowna.xhtml.
Poniższa komenda pozwala plikom z rozszerzeniem .test na wyświetlenie skryptów i dyrektyw HTML tak, jak ma to miejsce w przypadku plików .xhtml.
AddType application/xhtml+xml .test #to znaczy, że pliki .test będą rozpoznawane jako pliki .[[XHTML|xhtml]]
Poniższa komenda pozwala na wykonywanie kodu PHP w pliku z określonym rozszerzeniem (tutaj .xhtml).
AddType application/x-httpd-php .xhtml #działa podobnie jak poprzednio
Poniższy fragment pozwala chronić pliki za pomocą prostej autoryzacji[1].
AuthType Basic AuthName "Proszę podać nazwę użytkownika oraz hasło." AuthUserFile /sciezka/do/pliku/z/uzytkownikami Require user uzytkownik
To znaczy, że należy:
- Napisać kod w pliku .htaccess
- Utworzyć plik .htpasswd
Przykładowa zmiana kodowania za pomocą .htaccess.
AddDefaultCharset ISO-8859-2 AddDefaultCharset UTF-8
Za pomocą .htaccess można też dokonać przekierowania z innej domeny lub na subdomenę www
Redirect 301 / http://www.jakaś-domena-internetowa.pl/
Za pomocą .htaccess możemy zmniejszyć czas ładowania strony[2] poprzez kompresję plików G-zip
<ifModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* </ifModule>
W pliku .htaccess możemy dostosować trwałość pamięci podręcznej, dzięki czemu znacznie przyspieszymy ładowanie strony
<ifModule mod_expires.c> ExpiresActive On ExpiresDefault „access plus 5 seconds” ExpiresByType image/x-icon „access plus 2592000 seconds” ExpiresByType image/jpeg „access plus 2592000 seconds” ExpiresByType image/png „access plus 2592000 seconds” ExpiresByType image/gif „access plus 2592000 seconds” ExpiresByType application/x-shockwave-flash „access plus 2592000 seconds” ExpiresByType text/css „access plus 604800 seconds” ExpiresByType text/javascript „access plus 216000 seconds” ExpiresByType application/javascript „access plus 216000 seconds” ExpiresByType application/x-javascript „access plus 216000 seconds” ExpiresByType text/html „access plus 600 seconds” ExpiresByType application/xhtml+xml „access plus 600 seconds” </ifModule>
Zobacz też
- .htgroup
- .htpasswd