.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:

  1. Napisać kod w pliku .htaccess
  2. 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ż

Przypisy

  1. Wcześniej należy stworzyć plik z użytkownikami i hasłami: htpasswd -bc /sciezka/do/pliku/z/uzytkownikami użytkownik hasło
  2. Optymalizacja strony za pomocą pliku .htaccess, blog.widzialni.pl, 19 kwietnia 2017 [dostęp 2017-04-19] (pol.).