Dariusz Dahm

Dariusz Dahm

Toruń, kujawsko-pomorskie, Polska
Dariusz Dahm

.htaccess plik konfiguracyjny serwera Apache

Opublikowano: 15 sierpnia 2009, kategoria » Edukacja, Internet
.htacses

Plik konfiguracyjny serwera Apache .htaccess

Plik .htaccess jest charakterystycznym elementem serwera WWW, pozwalającym skonfigurować niektóre jego parametry. Może zostać umieszczony w każdymkatalogu, 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. 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.

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]

.htaccess przekierowanie z jednej domeny na drugą

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

.htaccess – wymuszanie 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]

 

 

Warto przeczytać:

  • Pliki konfiguracyjne ApachePliki konfiguracyjne ApacheApache jest najszerzej stosowanym serwerem HTTP w Internecie. Jego udział wśród serwerów wynosił około 65%. W połączeniu z interpreterem języka skryptowego PHP i bazą danych MySQL, Apache […]
  • Dyrektywy blokowe serwera HTTP ApacheDyrektywy blokowe serwera HTTP Apache Apache udostępnia cały szereg tzw. dyrektyw blokowych (ang. block directives). Dyrektywy te pozwalają na ograniczenie innych zawartych w nich dyrektyw określonych dla plików, katalogów […]
  • Bezpieczeństwo serwera ApacheBezpieczeństwo serwera ApacheJednym z aspektów funkcjonowania serwera WWW jest bezpieczeństwo udostępnianych danych i informacji. Udostępnianie komputera osobom postronnym jest bardzo niebezpieczne i można to […]
  • Apache – Serwery wirtualneApache – Serwery wirtualneOd jakiegoś czasu można zaobserwować niesłychany wzrost popularności serwerów WWW. O ile jakiś czas temu firma czy organizacja mogła zadowolić się stroną WWW zamieszczoną w podkatalogu […]

Więc, co o tym myślisz?

Przeczytaj poprzedni wpis:
Bezpieczeństwo serwera Apache
Bezpieczeństwo serwera Apache

Jednym z aspektów funkcjonowania serwera WWW jest bezpieczeństwo udostępnianych danych i informacji. Udostępnianie komputera osobom postronnym jest bardzo niebezpieczne i...

Dyrektywy serwera Apache
Dyrektywy blokowe serwera HTTP Apache

 Apache udostępnia cały szereg tzw. dyrektyw blokowych (ang. block directives). Dyrektywy te pozwalają na ograniczenie innych zawartych w nich dyrektyw...

Zamknij