Zarejestruj się na BitBay.net
Home > apache, Linux, PHP > Pliki konfiguracyjne .htaccess

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
Kategorie:apache, Linux, PHP Tagi:, ,
  1. Wrzesień 3rd, 2013 at 14:55 | #1

    Ile razy widzę spam w takiej ilości to aż mi się odechciewa prowadzić strony www 😀

  1. Brak jeszcze trackbacków
*