Tutorial .htaccess
|Serverul de web Apache utilizeaza un sistem de acces si configurare prin intermediul caruia utilizatorii pot modifica si controla mai multe caracteristici ale unui site, prin crearea de fisiere .htaccess.
Un fisier .htaccess este un simplu fisier text ce contine comenzi, denumite directive Apache. Aceste directive se aplica si afecteaza fisirele din directorul in care se afla fisierul .htaccess precum si subdirectoarelor acelui director.
Fisierele de tip htaccess trebuie puse pe ftp în format ASCII mode si nu BINARY.
Daca puneti un fisier “.htaccess” în directorul root al siteului, acesta va afecta si subdirectoarele, daca acestea nu au cate un fisier .htaccess. Daca in .htaccess aveţi setate niste reguli pentru directorul corespunzator “site.ro”, atunci vor fi afectate şi subdirectoarele corespunzătoare “site.ro/director1” sau “site.ro/director2”.
Dacă doriti setări diferite pt fiecare subdirector, puteti pune cate un fisier .htaccess in fiecare director. Un subdirector va fi afectat de cel mai aproape htaccess.
Ce pot face utilizand fisierele .htaccess?
Fisierele .htaccess pot fi unelte foarte puternice. Mai jos gasesti cateva lucruri care pot fi obtinute utilizand .htaccess:
- directoare protejate cu parola
- setare pagini erori personalizate
- dezactivare listare director (directory listings)
- specificare fisier index alternativ
- blocarea accesului vizitatorilor pe baza de adresa IP
- prevenire furt banda prin utilizarea ‘hotlink’
- redirectionare automata catre anumite pagini …
Unele dintre aceste caracteristici (protectie parola, pagini erori personalizabile, tipuri MIME) au fost automatizate prin intermediul panoului de control al contului de gazduire si pot fi utilizate fara a crea manual fisiere .htaccess. Oricum, celelalte trebuiesc implementate manual de catre detinatorul contului.
Setare pagini erori personalizate
Există mai multe coduri de eror, cum ar fi:
Cereri acceptate cu succes | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
Cereri de client redirectate | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
Cereri de client eronate | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
Erori de server | ||||||||||||||||||||||||||||||||
|
Unele din cele mai frecvente erori sunt:
401 – Authorization required – atunci cand cineva încearcă să intre într-o zonă unde nu are destul acces, 403 – Forbidden – atunci când un utilizator nu are access la un anume fişier
400 – Bad request – atunci când cineva încearcă să manipuleze URL-ul sau scripturile paginii web
Cu .htaccess putem creea pagini personalizate ce se afiseaza atunci cand se intalneste o eroare.
De exemplu:
ErrorDocument 401 /auhreqd.html
ErrorDocument 403 /forbid.html
ErrorDocument 404 /notfound.html
ErrorDocument 500 /serverr.html
Cu un fişier de .htaccess putem proteja un director cu parola. Pentru a proteja un director cu parola trebuie să cream un fisier numit “.htpasswd”, apoi în fişierul htaccess este introdus username si parola (este criptată).
AuthUserFile fisier_cu_parole/.htpasswd
AuthName “Mesaj_autentificare”
AuthType Basic
require user user_name
Continutul fisierul .htpasswd este de forma:
user1:parola_pentru_user1_criptata_cu_md5
user2:parola_pentru_user2_criptata_cu_md
Pentru a permite accesul doar de la un anumit IP se adauga aceasta linie in fisierul .htaccess:
allow from xxx.xxx.xxx.xxx
unde xxx.xxx.xxx.xxx este adresa IP care are acces la site.
Pentru a bloca accesul unui IP se adauga:
deny from xxx.xxx.xxx.xxx
Daca se doreste interzicerea accesului pentru orice vizitatator:
deny from all
Daca dorim redirectarea catre un alta locatie se adauga urmatoarea linie in .htaccess:
Redirect calea_fisier/fisier_actual.ext http://www.site_nou.ro/fisier_nou.ext
Pentru redirectarea oricarui fisier dintr-un director accesat catre un alt fisier:
Redirect cale_director/director_actual http://www.site_nou.ro/director_nou
Impedicati accesul la un director fara index
Daca nu aveti nici un fisier index in unele directoare, in cazul in care directorul este accesat, va fi afisata toata lista fisierelor din acel director. Pentru a impedica aceasta situatie puteti introduce o comanda in fisierul .htaccess:
Options -Indexes
Sper sa va fie de folos.