Konfigurowanie strony z pomocą pliku .htaccess
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.
Co znajdziesz w tym wpisie
- 1 Do czego służy plik .htaccess?
- 1.1 Jak stworzyć plik .htaccess?
- 1.1.1 Blokowanie dostępu do katalogu z poziomu przeglądarki internetowej
- 1.1.2 Blokownie po adresie IP
- 1.1.3 Blokowanie dostępu do konkretnego obiektu
- 1.1.4 Powiązania typów plików
- 1.1.5 Zastrzeżenie dostępu hasłem
- 1.1.6 Zmiana rozszerzenia pliku
- 1.1.7 Zmiana rozszerzenia pliku pliku HTML na PHP
- 1.1.8 Blokowanie ruchu przychodzącego z konkretnych stron
- 1.2 Jak używać pliku?
- 1.1 Jak stworzyć plik .htaccess?
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 301 i 302 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ę.