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:
Code: Select all
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:
Code: Select all
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:
Code: Select all
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
Image
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.
Image
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:
Code: Select all
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:
Code: Select all
ErrorDocument numar_eroare /cale_fisier/fisier_eroare.html
Cele mai comune erori sunt:
numar_eroare Semnificatie
400 Bad Request
401 Authorization Required
403 Forbidden
404 Not Found
500 Internal 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:
Code: Select all
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:
Code: Select all
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:
Code: Select all
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:
Code: Select all
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):
Code: Select all
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.
Niciun comentariu:
Trimiteți un comentariu