Tutorial .htaccess

Data publicarii: Iulie 2006

Tutoriale » Anexe » Tutorial .htaccess

Anexe Jul 2006
Inainte de a crea si utiliza fisierul .htaccess aflati daca aveti dreptul sa-l folositi pe server.
Comenzile din .htaccess vor actiona asupra tuturor fisierelor si subdirectoarele din directorul in care se afla. Fiecare comanda va fi scrisa pe un singur rand, pentru aceasta dezactivati in editorul de text functia "wrap text".

Pentru a putea verifica cele prezentate aici va recomand sa creati un director nou pe server care sa contina fisierul .htaccess pentru probe, deoarece in cazul nefunctionarii sa nu afecteze directoare importante ci numai pe acela.

Protejarea unui director cu parola

Pentru aceasta vom folosi doua fisiere speciale .htaccess si .htpasswd

.htaccess nu poate fi creat in mediul Windows deoarece nu permite generarea fisierelor al carui nume incepe cu caracterul punct. Singura varianta este conectarea pe server folosind un client FTP si crearea fisierului cu numele .htaccess

In mediul UNIX, Linux fiserul poate fi creat si editat fara probleme.

Fisierul are sintaxa:

AuthUserFile calea_catre_fisierul_cu_parole/.htpasswd
AuthName "Mesaj"
AuthType Basic
require user user_name

Prima linie arata calea catre fisierul cu parolele de autentificare (.htpasswd).
A doua linie stabileste ce mesaj va fi afisat in pagina de autentificare.
In ultima linie user_name este user-ul care dorim ca browserul sa-l accepte ca un nume valid pentru parola
Daca sunt mai multi useri abilitati sa acceseze directorul ultima linie se va scrie astfel:

require valid-user

Fisierul .htpasswd se creaza din linie de comanda introducand numele fisierului, username si parola asociata acestuia.

Pentru server Apache instalat sub Windows Start -> Run -> cmd -> Enter
din linie de comanda se schimba directorul (comanda cd) pina la locatia unde se afla htpasswd.exe (uzual folderul Apache/bin), apoi se tasteaza:

htpasswd -c .htpasswd user_name

se apasa Enter, apoi se solicita introducerea parolei dorite de doua ori
Parametrul -c indica crearea fisierului .htpasswd daca el nu exista.
user_name va fi acelasi cu cel din penultima linie din fisierul .htaccess

Fisier .htpasswd

Fisierul cu parole .htpasswd:
- va fi creat in acelasi folder cu executabilul htpasswd.exe.
- daca doriti puteti sa-l mutati in alta parte
- puteti sa-l denumiti oricum
Daca-l veti muta sau redenumi nu uitati sa modificati locatia si numele in prima linie din fisierul .htaccess

Daca doriti puteti acredita mai multi useri pentru accesarea directorului protejat.
Daca fisierul nu este creat folositi parametrul -c la primul user, la urmatorii useri folositi aceeasi comanda dar fara -c.

Fisier .htpasswd

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

Se observa ca parola nu este pastrata in clar ci in forma criptata.
Pentru securitate puteti plasa fisierul cu parola intr-un director care nu este vizibil din Internet, recomandat undeva deasupra directorului radacina a serverului web.

Fisier configurare server Apache

Pentru ca aceasta modalitate de protectie cu parola sa functioneze este necesara si o modificare in fisierul de configurare httpd.conf a serverului Apache.

Cautati in fisier unde apare:

AllowOverride None

precedat de un comentariu (marcat cu #) despre .htaccess
Se va modifica din None in All

Pagini de eroare

Puteti personaliza paginile de eroare functie de numarul erorii generat adaugand in fisierul .htaccess urmatoare linie:
ErrorDocument numar_eroare  /fisier_eroare.html

Pagina de eroare poate avea orice nume dar trebuie declarata calea corecta catre ea.

Daca fisier_eroare.html nu se afla in acelasi folder cu fisierul .htaccess se adauga calea:

ErrorDocument numar_eroare  /cale_fisier/fisier_eroare.html

Cele mai comune erori sunt:

numar_eroareSemnificatie
400Bad Request
401Authorization Required
403Forbidden
404Not Found
500Internal Server Error

Daca doriti puteti introduce in .htaccess mai multe randuri corespunzatoare mai multor tipuri de erori.

Blocarea afisarii listei de fisiere dintr-un director

Putem avea dintr-un anumit motiv un director fara fisier index. Daca dorim sa accesam acel folder cu un browser va fi afisata lista de fisiere continute. Aceasta este considerata ca o hiba de securitate pentru server.

Pentru a preveni acest lucru se adauga in .htaccess urmatoarea linie:

Options -Indexes

Acces permis/interzis pentru anumite adrese IP

In unele situatii putem dori ca numai anumite persoane cu adrese IP cunoscute sa poata sau sa nu poata accesa site-ul.

Pentru a permite accesul se adauga aceasta linie in fisierul .htaccess:

allow from xxx.xxx.xxx.xxx

unde xxx.xxx.xxx.xxx este adresa IP careia i-a fost acordat accesul la site.

Pentru a bloca accesul se adauga aceasta linie:

deny from xxx.xxx.xxx.xxx

unde xxx.xxx.xxx.xxx este adresa IP careia i-a fost interzis accesul la site.

Daca se doreste interzicerea accesului pentru orice vizitatator:

deny from all

Fisiere index alternative

Daca nu doriti ca fisierul index sa fie index.html sau index.htm puteti adauga urmatoarea linie in fisierul .htaccess mentionand ordinea in care ele vor fi interpretate (de la stanga la dreapta):
DirectoryIndex index.php index.html wellcome.html

Redirectarea

Daca se doreste redirectarea catre un alta locatie se adauga o linie in .htaccess astfel:
Redirect calea_fisier/fisier_actual.ext http://www.alt_site.com/fisier_nou.ext

Sintaxa pentru redirect contine trei parti: redirect, pagina veche si pagina noua. Intre aceste blocuri este un singur spatiu si sunt toate scrise pe acelasi rand.

Pentru redirectarea oricarui fisier dintr-un director accesat catre un alt fisier:

Redirect calea_director/director_actual http://www.alt_site.com/director_nou

Aceasta facilitate isi gaseste utilitatea de exemplu atunci cand se schimba serverul de gazduire.

Sus

Tutoriale
15 Jan 2025  9:12 PM

Copyright © 2005-2023 Termeni si conditii
 
Comentarii:
Danny
15-06-2012
Bun site

Sus