HTACCESS

 

HTACCESS jest wbudowanym mechanizmem konfiguracyjnym serwera stron WWW Apache, pozwaląjcym określać sposób jego działania w odniesieniu do indywidualnych katalogów. W katalogu, do zawartości którego ma się odnosić mechanizm konfiguracyjny umieszcza się plik o nazwie  .htaccess   z  jednowierszowymi poleceniami. Działanie poleceń rozciąga się na podkatalogi, chyba że umieszczono w nich ich własne pliki .htaccess

 

Mechanizm autoryzacji dostępu do stron "htaccess"

 

Kontrola dostępu po stronie serwera, nie klienta. Dzięki temu mechamizm należy do bezpiecznych.

 

Dostęp typu "user/password"

  1. Tworzymy plik o nazwie  .htaccess  o następującej treści

    AuthName "Prywatna strona"
    AuthType Basic
    AuthUserFile
    /pełna_scieżka_do_pliku/.htpasswd
    Require valid-user

    Plik ten umieszczamy w zabezpieczanym katalogu www.
    Informacje o innych opcjach znaleźć można na stronie

                       http://www.freewebmasterhelp.com/tutorials/htaccess/


     

  2. Tworzymy plik o nazwie  .htpasswd  (w katalogu określonym poleceniem AuthUserFile) przy pomocy narzędzia Unix

    htpasswd -c .htpasswd <nazwa uzytkownika>

    Program pyta nas dwukrotnie o podanie hasła dla wskazanego użytkownika. Hasło to jest szyfrowane algorytmem MD5 i zapisywane w pliku  .htpasswd  - tu przykład dla użytkownika "swoj"

    swoj :UCAEbGuuBa.YU

    Alternatywnie można posłużyć się usługą sieciową

                     http://www.kxs.net/support/htaccess_pw.html


    która generuje szyfrowane hasło j.w. Można je następnie ręcznie wkleić do pliku  .htpasswd  jeśli nasz serwer nie udostępnia narzędzia htpasswd
     

  3. Obydwa pliki  .htaccess  i  .htpasswd  muszą być dostępne do odczytu dla serwera http (można np. ustawić im tryby dostępu przez 

    chmod 644 .htaccess
     

  4. Jeśli ochroną mają być objęte tylko niektóre pliki w katalogu, dla każdego z nich (np.  plik-A.html, plik-B.html,  itd.) tworzymy w .htaccess następującą grupę:
     
    <File plik-A.html>

  5.    Require valid-user
    </File>

 

Dostęp wg. numeru IP

W pliku   .htaccess  umieszczamy polecenia

Order allow,deny
deny from 151.75.6.15
deny from 151.75.6.
allow from .umk.pl

odpowiednio blokujące dostęp do katalogu z konkretnego adresu IP, z grupy adresów, lub też zezwalające na dostęp z serwerów wskazasnej grupy.

Blokada możliwości podglądu samego pliku .htaccess

<File .htaccess>
  Order allow,deny
  deny from all
</File>

 

 

Inne zastosowania "htaccess"

 

  1. Ustawienia domyślne serwera Apache mogą zezwalać lub zabraniać gościom listowania zawartości odwiedzanych katalogów.  .htaccess  umożliwia zmianę tych ustawień w odniesieniu do poszczególnych katalogów.

    IndexIgnore *                            zawartość katalogu nie będzie wyświetlana
    IndexIgnore *.gif *.jpg           
    nazwy plików graficznych z bieżącego katalogu nie pojawią się w listingu
    Options +Indexes (-Indexes)   zezwolenie/zakaz listingu dla katalogu

     

  2. Przekierowania      

    :Location /stara.html                           
    Redirect /nowa.html

    :Location /stara.html
    Redirect http://www.nowy_adres.pl

    Inne parametry "Redirect"  (np. temp, permanent, forbidden, ...)  generują rozmaite kody błędu, na podstawie których serwer podejmie określoną akcję.

    :Location *.gif
    Expires A600

    Pliki graficzne  *.gif  tracą ważność po 10 minutach, przeglądarka klienta musi pobrać je ponownie po upływie tego czasu.

     

  3. Definiowanie strony głównej w katalogu  (domyślnie  Index.html)

    Index  glowna.html  glowna-alt.html    

    Strony  glowna.html, a przy jej braku  glowna-alt.html  będą traktowane jako główne w katalogu.

     

  4. Obsługa błędów.   Typowa sytuacja - błąd 404: brak zasobu o podanym przez klienta adresie url powoduje wyświetlenie komunikatu przeglądarki "Not found". Można to zmienić:

    ErrDoc 404 /obsluga/brak_pliku.html

     

  5. Redefiniowanie typów MIME.  Przeglądarka domyślnie kojarzy pobierane pliki określonego typu ze stosownymi "wtyczkami", np.  *.doc - MSWord,   *.pdf - Acrobat Reader  itp.  Można te powiązania zmienić/podpowiedzieć, np.:

    :Location  *.jpg
    SetMime application/gimp