.htaccess plik konfiguracyjny serwera Apache

.htaccess plik konfiguracyjny serwera Apache
Plik konfiguracyjny serwera Apache .htaccess

.htaccess plik konfiguracyjny serwera Apache. Plik .htaccess jest charakterystycznym elementem serwera WWW, pozwalającym skonfigurować niektóre jego parametry. Może zostać umieszczony w każdym katalogu.

Wywołując tym samym określoną reakcję odnośnie znajdujących się w nim plików, jak również zawartości podkatalogów, chyba, że w podkataloguumieszczono kolejny .htaccess.

.htaccess plik konfiguracyjny serwera Apache

W ramach jednego konta może funkcjonować wiele niezależnych plików .htaccess, z których każdy definiuje inną akcję. Za pomocą specjalnych dyrektyw możliwe jest m.in. wskazywanie stron WWW wyświetlanych w odpowiedzi na różne komunikaty błędów serwera, ograniczanie dostępu do zasobów i wiele innych.

Plik .htaccess odczytywany jest podczas każdego żądania dotyczącego plików danego katalogu, a więc jego modyfikacja znajduje natychmiastowe odzwierciedlenie w zachowania się serwera co może stanowić alternatywne rozwiązanie zmiany konfiguracji serwera w czasie jego pracy i jest swoistym rozszerzeniem pliku konfiguracyjnego httpd.conf, który jest odczytywany tylko raz podczas startu serwera.

Zaletą takiego rozwiązanie jest elastyczność administrator może zmienić konfiguracje poprzez modyfikacje tego pliku w dowolnym momencie bez potrzeby zatrzymywania Apacze. Niestety odbywa się to kosztem dość poważnego spadku wydajności spowodowanego koniecznością przeczytania i przeanalizowania przez serwer tego pliku podczas każdego odwołania do tej witryny.

.htaccess plik konfiguracyjny serwera Apache

Administrator może graniczyć efekt działania pliku za pomocą dyrektywy AllowOverride lub uniemożliwić klientom witryny podglądanie tego pliku. W tym celu należy w pliku konfiguracyjnym httpd.conf umieścić dyrektywę

<Files .htaccess>
Order allow, deny
Deny from all
</Files>

Nazwa .htaccess jest domyślną nazwą pliku konfiguracyjnego Apache. Może jednak zostać zmieniona za pomocą dyrektywy AccessFileName.

.htaccess – różne przykłady zastosowań

Ograniczenie odwiedzającym dostęp do określonego katalogu. Należy w tym katalogu umieścić plik .htacces z następującą treścią:

AuthName \”Dostep za zgodą forma.com.pl\”
AuthType Basic
AuthUserFile /ściezka do tajnego katalogu/.htpasswd
require valid-user

Do tego potrzebny jest jeszcze plik .htpasswd zawierający hasła i loginy dostępowe do ów katalogu. Hasła dodajemy za pomocą programu htpasswd, który znajduje się w katalogu c:\usr\Apache2\bin i wykonujemy:

htpasswd -c -b / ściezka do tajnego katalogu /.htpasswd user haslo

Opcja „c” służy nam jedynie wtedy gdy po raz pierwszy tworzymy plik z hasłami. Każde następne wywołanie wykonujemy już bez parametru –c

Zablokowanie dostęp niektórym IP, do serwera lub strony , plik .htacess powinien wyglądać tak:

Order allow,deny
Allow from all
Deny from xxx.xxx.xxx.xxx

Gdzie xxx.xxx.xxx.xxx to IP, które chcemy zablokować.

Zabezpieczenie się przed wyświetleniem zawartości katalogu, jeżeli w nim nie ma pliku startowego (index.html, index.php, itp.)

DirectoryIndex index.php index.html index.htm index.php3
Options -Indexes

.htaccess – zdefiniowanie własnej strony błędów

Aby zdefiniować własne strony błędów hosta lub serwera należy założyć na nim katalog o dowolnej nazwie np. error i wgrać do niego własne strony błędów.
Następnie należy wyedytować plik .htaccess o przykładowej treści i wgrać do katalogu głównego serwera – przykładowa treść poniżej:

ErrorDocument 400  http://domena.pl/error/400.shtml
ErrorDocument 401   http://domena.pl/error/401.shtml
ErrorDocument 403  http://domena.pl/error/403.shtml
ErrorDocument 404  http://domena.pl/error/404.shtml
ErrorDocument 405  http://domena.pl/error/405.shtml
ErrorDocument 406  http://domena.pl/error/406.shtml
ErrorDocument 408  http://domena.pl/error/408.shtml
ErrorDocument 410  http://domena.pl/error/410.shtml
ErrorDocument 411   http://domena.pl/error/411.shtml
ErrorDocument 414  http://domena.pl/error/414.shtml
ErrorDocument 500  http://domena.p/error/500.shtml
ErrorDocument 503  http://domena.pl/error/503.shtml

Oczywiście adresy plików są dowolne, nie wszystkie kody błędów trzeba ustawiać, będą działać w takim przypadku te dla całego serwera.

Definiowanie strony głównej za pomocą .htaccess

Funkcja definiowania strony głównej umożliwia określenie dokumentów wyświetlanych domyślnie po wpisaniu odnośnika, który nie zawiera wywołania konkretnej strony (np. http://biuro.firma.com.pl/oferta).

Index start.htm start.html index.htm index.html index.php

Jak zdefiniować przekierowanie 301 w pliku .htaccess?

Przekierowanie 301 jest to sposób za pomocą którego można internautę przekierować z jednego adresu URL na inny który może znajdować się na innym serwerze lub na tym samym. Jest to najlepsze rozwiązanie przy pozycjonowania strony WWW w wyszukiwarkach.

Kod 301 oznacza „Moved Permanently”, czyli trwale przeniesiony. Przekierowanie 301 powinniśmy stosować w przypadku, gdy posiadamy kilka domen, które wskazują na tą samą stronę internetową. Na przykład dla Google strona znajdująca się pod adresem twoja-strona.pl i www.twoja-strona.pl są to dwie różne strony. Dlatego należny wybrać adres główny z www lub bez i za pomocą przekierowania 301 a pozostałe domeny skierować na adres główny.

.htaccess – wymuszanie adresu domeny z przedrostkiem „www.” lub bez

RewriteEngine On
RewriteCond %{HTTP_HOST} ^twojadomena.pl$ [NC]
RewriteRule ^(.*)$ http://www.twojadomena.pl/$1 [R=301,L]

przekierowanie z jednej domeny na drugą w pliku .htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?stara-domena\.pl [NC]
RewriteRule (.*) http://nowa-domena.pl/$1 [R=301,L]

Wymuszanie w .htaccess – adresu domeny z przedrostkiem „https://”

RewriteEngine On
RewriteCond %{HTTPS} !^on$
RewriteRule ^(.*)$ https://www.domena.pl/$1 [R=301,L]

.htaccess – zabezpieczenie przed linkowaniem obrazków

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?twojadomena\.pl [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} ^http://.*$
RewriteRule \.(jpe?g|gif|bmp|png)$ /obrazki/image.png [L]

.htaccess – przekierowanie kilku domen na jeden adres

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domena1.pl$ [OR]
RewriteCond %{HTTP_HOST} ^(www\.)?domena2.pl$
RewriteRule ^(.*)$ http://www.domena.pl/$1 [R=301,L]


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *