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
200 OK
201 Created
202 Accepted
203 Non-Authorative Information
204 No Content
205 Reset Content
206 Partial Content
Cereri de client redirectate
300 Multiple choices
301 Moved Permanently
302 Moved Temporarly
303 See Other
304 Not Modified
305 Use Proxy
Cereri de client eronate
400 Bad request
401 Authorisation Required
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable (encoding)
407 Proxy Authentification Required
408 Request Timed Out
409 Conflicting Request
410 Gone
411 Content Lenght Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type
Erori de server
500 Internat Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported

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 400 /badrequest.html
ErrorDocument 401 /auhreqd.html
ErrorDocument 403 /forbid.html
ErrorDocument 404 /notfound.html
ErrorDocument 500 /serverr.html
…………..
Creem aceste fisiere unde punem codul ce se va executa si afisa cand se intalneste eroarea respectiva.

Protectie cu parola, folosind .htaccess

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ă).

Exemplu:
AuthUserFile fisier_cu_parole/.htpasswd
AuthName “Mesaj_autentificare”
AuthType Basic
require user user_name
user_name este user-ul care dorim ca browserul sa-l accepte ca un nume valid pentru parola. Daca sunt mai multi useri ce pot sa acceseze directorul ultima linie se va scrie astfel:
require valid-user

Continutul fisierul .htpasswd este de forma:
user1:parola_pentru_user1_criptata_cu_md5
user2:parola_pentru_user2_criptata_cu_md

…… (se pot adauga oricati useri)
Pentru ca aceasta modalitate de protectie functioneze este necesara si o modificare in fisierul de configurare httpd.conf a serverulu, astfel:

AllowOverride None se inlocuieste cu AllowOverrideAll

Alte instructiuni utile:

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.

No Comments

Add a Comment

Your email address will not be published. Required fields are marked *