Pliki konfiguracyjne .htaccess

apacheDo czego służą pliki .htaccess ?

Plik .htaccess pozwala na pewne zmiany w konfiguracji serwera. Zmiany te są widoczne tylko w podkatalogach i katalogu, w którym ten plik się znajduje. Za pomocą pliku .htaccess można zmieniać/konfigurować niektóre dyrektywy Apache lub też ustawienia PHP bez konieczności grzebania w plikach konfiguracyjnych serwera. Najpierw musimy jednak poinformować Apache w pliku głównym httpd.conf, że chcemy umożliwić użytkownikom zmianę konfiguracji poprzez pliki .htaccess

Ustawmy więc globalnie:

<Directory />
AllowOverride All
</Directory>

Spowoduje to możliwość zmiany konfiguracji przez wszystkich użytkowników. Możemy więc ograniczyć działanie tej dyrektywy poprzez indywidualne przyznanie możliwości konfiguracji np. tylko dla wybranych wirtualnych hostów:

# na początek blokujemy wszystkim
<Directory />
AllowOverride None
</Directory>

# dla poniższych hostów pozwalamy nadpisywać dyrektywy
<VirtualHost test.pl>
<Directory /home/user/html>
AllowOverride All
</Directory>
</VirtualHost>

Musimy poinformować Apache jakie pliki będą zawierały tę konfigurację oraz zabezpieczyć je aby nikt niepowołany nie miał do nich dostępu. Ustawiamy globalnie w httpd.conf:

AccessFileName .htaccess

 # oraz zakładamy blokadę
 <Files ~ "^\.ht">
 Order deny,allow
 Deny from all
 </Files>

I to wszystko. Aby nowa konfiguracja zadziałała należy zrestartować serwer http. Poniżej najważniejsze ustawienia.

  1. OGRANICZENIE DOSTĘPU DO STRON WWW HASŁEM:
    W katalogu, który chcemy zabezpieczyć należy umieścić plik o nazwie .htaccess zawierający następujące polecenia dla serwera WWW:

    AuthName "Restricted Area"
    AuthType Basic
    AuthUserFile /var/www/html/wiki/.htpasswd
    AuthGroupFile /dev/null
    require valid-user

    zamiast require valid-user możemy użyć następujących opcji:

    • Access allow all users janek zosia – Udziela dostępu z dowolnego adresu IP użytkownikom „janek” oraz „zosia”
    • Access allow 212.85.112.3 – Udziela dostępu dowolnemu użytkownikowi łączącemu się z konkretnego IP (212.85.112.3), odmawiając innym tego dostępu.
    • Access allow all groups wtajemniczeni – Udziela dostępu łączącemu się z dowolnego IP i jednocześnie autoryzującego się loginem należącym do grupy „wtajemniczeni”.

    Następnie tworzymy plik z użytkownikami i ich hasłami, wpisując w trybie terminalowym poleceniem:

    htpasswd -c /home/uzytkownik/public_html/.htpasswd username

    Program dwukrotnie zapyta o hasło dla użytkownika „username” i zapisze go do pliku „.htpasswd”.
    Przy dodawaniu kolejnego użytkownika należy pominą flagę „-c” przy wywoływaniu htpasswd.

  2. WŁASNE STRONY BŁĘDÓW:
    Za pomocą .htaccess możesz zdefiniować reakcję na pojawienie się błędu przy wywołaniu strony WWW. Wynikiem działania może być wyświetlenie tekstu (umieszczanego w cudzysłowie), określonego dokumentu bądź adres, pod który nastąpi przekierowanie.

    Składnia polecenia:

    ErrorDoc <kod_błędu> <reakcja>

    Przykład:

    ErrorDoc 404 "Na serwerze nie ma takiego dokumentu"
    ErrorDoc 403 http://www.prezydent.pl
    ErrorDocument 500 /500.php
    ErrorDocument 503 /503.php
  3. LISTOWANIE ZAWARTOŚCI KATALOGU ZA POMOCĄ .htaccess:
    Funkcja listowania zawartości katalogu jest szczególnie użyteczna w sytuacji, kiedy bezpośrednio ze strony WWW chcesz umożliwić ściąganie wielu plików bez potrzeby każdorazowego wykonywania dokumentu HTML, zawierającego odnośniki do udostępnianych zasobów. Za konfigurację odpowiadają trzy parametry:

    • Options +Indexes – włączenie listowania zawartości katalogu,
    • IndexIgnore *.htm – na listingu nie bądą wyświetlane pliki *.htm
    • IndexOptions +FancyIndexing – sprawia, że lista plików zawiera ikonki.
    • IndexOptions -FancyIndexing – sprawia, że wygląd listy jest uproszczony.
    • HeaderName – nazwa pliku zawierającego nagłówek generowanej listy,
    • ReadmeName – nazwa pliku z dolną częścią strony/listy.

    Przykład:

    IndexIgnore *.htm
    Options +Indexes
    IndexOptions -FancyIndexing
    HeaderName top.htm
    ReadmeName bottom.htm
  4. CAŁKOWITE BLOKOWANIE DOSTĘPU DO STRONY:
    Za pomocą .htaccess można całkowicie zablokować dostęp do strony użytkownikom Aby tego dokonać, należy wpisać do pliku dwie linie:

    order allow,deny
    deny from all

    Można także zablokować dostęp użytkownikom z konkretnych numerów IP lub należących do określonej domeny.

    order allow,deny
    deny from edu.prv.pl
    allow from all

    Co oznacza: zablokuj dostęp dla wszystkich łączących się z domeny edu.prv.pl (zamiast domeny można podać numer IP), oraz zezwól na dostęp pozostałym.

  5. BLOKOWANIE DOSTĘPU DO WYBRANYCH PLIKÓW:
    Do blokowania wybranych plików służy dyrektywa FILES:

     <Files admin.php>
    order allow,deny
    allow from 127.0.0.1
    deny from all
    </Files>
  6. BLOKOWANIE DOSTĘPU ZA POMOCĄ .htaccess oraz rewrite_mod:
    W katalogu, który chcemy zabezpieczyć należy umieścić plik o nazwie .htaccess zawierający następujące zawartości:

     RewriteEngine On
    Options +FollowSymlinks
    RewriteBase /
    RewriteRule ^(.*) komunikat.html

    W pliku komunikat.html umieszczamy oczywiście komunikat np. o przyczynie zablokowania strony.

  7. USTAWIENIA PHP
    Składnia dyrektyw zmieniających konfigurację PHP jest następująca:

    php_flag nazwa on|off

    Przykład:

    ## Wylaczenie rejestrowania zmiennych globalnych
    php_flag register_globals off
    
    ## Wylaczenie interpretacji krotkich znacznikow PHP
    php_flag short_open_tag off
    
    ## Wylaczenie kompresji zlib, gdy powoduje problemy
    php_value zlib.output_compression 0
    
    ## Zwiekszenie limitu pamieci
    php_value memory_limit 32M
    
    ## Wlaczenie magicznych cudzyslowow dla GPC
    php_flag magic_quotes_gpc on
    
    ## Wylaczenie wyswietlania bledow
    php_flag display_errors off
    
    ## Inne ustawienia dotyczące wyswietlania błedów
    php_flag log_errors on
    php_value track_errors on
    php_value error_log /home/cor/errors/phperr.log
    
    #maksymalna wielkość uploadowanego pliku itd.
    php_value upload_max_filesize 12M
    php_value post_max_size 12M
    
    # włączamy wykonywanie skryptów php z plikach o określonych rozszeżeniach
    AddType application/x-httpd-php5 .htm .html .php .inc

4 thoughts on “Pliki konfiguracyjne .htaccess

  1. Uczę się z książki programowania php sql itd. ale napotkałem problem gdzie strony nie są poprawnie wyświetlane jeśli część zawartości znajduje się poza katalogiem gdzie jest plik index.php/html

    Na przykład zdjęcia umieszczam katalog niżej ../ i już strona nie chce wyświetlić zdjęcia mówiąc, że plik nie istnieje(kombinowałem ze ścieżką na różne sposoby).

    Wychodzi na to, że serwer nie udostępnia plików niżej niż katalog z index.html.
    Jak mogę prosić o pomoc to jak skonfigurować plik htaccess aby był dostęp do katalogu niżej, ale chcę aby strona była bezpieczne.
    Ponoć umieszczanie ważnych plików niżej jest bezpieczniejsze dla strony.html
    Za odpowiedź z góry dziękuje

  2. Pingback: Link.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*

Releated

Munin + nginx + debian czyli monitorowanie serwerów

Munin jest bardzo prostym i przydatnym narzędziem służące do monitorowania aktywności serwerów. Przy jego pomocy możemy konfigurować dowolną ilość maszyn. Wynikiem działania są wykresy przedstawiające aktualny i historyczny stan systemu. Na podstawie wykresów możemy określić czy system pracuje stabilnie, możemy również obserwować jak wprowadzane zmiany wpływają na stan systemu.

Bitcoin node on Cubieboard

Sieć Bitcoina jest siecią P2P, składa się więc z węzłów – czyli komputerów, na których działa tradycyjny klient bitcoina , węzły te łączą się z innymi węzłami w sieci rozproszonymi w Internecie. Co się dzieje, gdy do sieci włącza się/dołącza się nowy węzeł czyli jeśli ktoś zainstaluje nowy portfel lub uruchomi już używany.