Konfigurowanie strony z pomocą pliku .htaccess

Czas czytania 3 minuty

Plik .htaccess to to jeden z ciekawszych plików jakie umieszcza się na serwerze w celu poprawnego skonfigurowania strony internetowej.

Plik ten jest bardzo łatwy w utworzeniu co do konfiguracji to rożnie bywa. Nieprawidłowo skonfigurowany może spowodować, że strona przestanie działać.

[aktualizacja 10.2019]

Tak naprawdę pierwszy raz spotkałam się z tym plikiem podczas konfiguracji WordPress. Co w cale nie oznacza, że inne strony go nie posiadają. W ręcz przeciwnie obecnie raczej trudno znaleźć serwis bez tego pliku. Jest aż tak użyteczny.

Do czego służy plik .htaccess?

  • blokowania po adresie ip,
  • ograniczanie dostępu
  • przekierowywania z jednego adresu na drugi (np. 301)
  • blokowania dostępu do strony lub katalogu
  • zmiany formatu adresów stron (np. tworzenia tak zwanych przyjaznych linków)
  • ustawianiu strony startowej / głównej serwisu,
  • wiele, wiele więcej 

Jak stworzyć plik .htaccess?

Na początek przyda nam się edytor kodu. Najlepiej sprawdzi się tutaj Notepad++ lub zwykły notatnik. W tym przypadku nie ma potrzeby skorzystania z  skompilowanych narzędzi. Nie będę specjalnie wnikać w to jak zapisać plik odeślę was za to do pomocy home.pl. Zostało tam opisane jakie kodowanie powinien mieć plik.

O tym jak wykonać przekierowanie 301302 z pomocą tego pliku pisałam już w innym wpisie. Podobnie jak o tym jak wykorzystać ten plik do stworzenia własnej strony 404.html lub jak zmienić domyślną stronę główną na inną .

Dlatego też odstawy sobie daruję i przejdę od razu do nieco trudniejszych zagadnień.

Pamiętajcie zaczynamy od:

RewriteEngine On

Dodajemy tylko raz. Więcej nie ma potrzeby


Blokowanie dostępu do katalogu z poziomu przeglądarki internetowej

Zabezpieczy nas to przed przeglądaniem plików naszej strony przez niepożądane osoby.

#blokada przed przeglądaniem katalogów
Options -Indexes

Blokownie po adresie IP

Z pomocą tej funkcji możemy zablokować określone IP. Czyli ograniczyć dostęp do całej strony osobą, która ma określony adres IP:

#zeznawanie i blokowanie po IP
Order Allow,Deny
Deny from 127.0.0.1
Allow from 128.0.0.1

Blokowanie dostępu do konkretnego obiektu

Możemy też zablokować dostęp tylko do konkretnej grupy obiektów. W efekcie ograniczamy dostęp np. do konkretnego katalogu:

#blokowanie dostępu do katalogu
<Directory /katalog_z_plikami/>
deny from all
</Directory>

A teraz do plików .PHP

<Files *.php>
deny from all
</Files>

Analogicznie będziemy tworzyć do innych typów plików. W tym kodzie symbol gwiazdki ( * ) zastępuje dowolny ciąg znaków.


Powiązania typów plików

Jeśli chcemy żeby wszystkie pliki .pdf na stronie otwierały się za pomocą danego programu:

#otwieranie plików pdf w domyślnym programie
AddType application/pdf .pdf

A wszystkie pliki .mp3 automatycznie się ściągały:

#automatyczne pobieranie plików typu mp3
AddType application/octet-stream .mp3

Zastrzeżenie dostępu hasłem

W sytuacji kiedy chcemy by konkretna część/plik w aplikacji jedynie dostępna dla osób znających hasło możemy skorzystać z poniższego kodu:

#ochrona plików hasłem
<Files folder/.htpasswd>
AuthType Basic
AuthUserFile style.css
Require valid-user
</Files>

Zmiana rozszerzenia pliku

Z pomocą tego pliku możemy też usuwać końcówki plików – i tak jeśli posiadamy w serwisie stronę o adresie:

http://moja-strona.pl/o-mnie.html

możemy skrócić ten adres do:

http://moja-strona.pl/o-mnie

#usuwamy końcówkę .HTML
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
Rewrite Rule ^(.*)$ $1.html

Lub

RewriteRule ^([^\.]+)$ $1.html [NC,L]

Powyższy kod działa również na pliki PHP. Trzeba go jednak odpowiednio zmodyfikować zastępując .html na .php


Zmiana rozszerzenia pliku pliku HTML na PHP

Z pomocą poniższego kodu można z kolei zmienić rozszerzenie HTML na PHP

RewriteRule ^(.*)\.html$ $1.php [L]

Blokowanie ruchu przychodzącego z konkretnych stron

Jeżeli nie chcemy by na naszą stronę można było wejść z innej konkretnej witryny to możemy użyć kodu:

# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} blokowanadomena\.pl [NC]
RewriteRule .* - [F]

Aby funkcja zadziałała serwer musi mieć włączoną opcję FollowSymlinks

Jak używać pliku?

Jeżeli chcemy korzystać z pliku .htaccess wystarczy umieścić gow katalogu ze stroną wtedy będzie on zarządzał odgórnie całym serwisem. Można go również umieścić w jednym z katalogów strony – wtedy jednak jego zasięg będzie ograniczał się do katalogu i zawartych w nim elementów.

Myślę, że jeśli korzystacie z klientów FTP (np. filezilla) plik ten będzie dla was widoczny. Czasami jednak możne się zdarzyć, że ustawiania serwera go ukryją.

Po wgraniu pliku o ile nie jest on pusty powinien prawie od razu zacząć oddziaływać na stronę.