Tutorial .htaccess

.htaccess este un fisier de configurare, pentru utilizare pe servere web care suporta Apache.
Cu toate ca .htaccess este doar un fisier, acesta poate schimba setarile de pe server si iti ofera posibilitati de executare a unor functii, de exemplu:

  • Directoare protejate cu parola (serviciu oferit implicit* )
  • Setare pagini de eroare personalizate (serviciu oferit implicit*)
  • Dezactivare afisare director (directory listings)
  • Setare fisier index alternativ
  • Blocarea accesului vizitatorilor pe baza de adresa IP
  • Redirectionare catre anumite pagini web

* toate abonamentele de gazduire Zooku beneficiaza de directoare protejate prin parola si pagini de eroare personalizate.

Nu este greu de utilizat, trebuie urmati doar cativa pasi simpli.
Totusi, inainte de a incepe, te rog sa tii cont de faptul ca aceste informatii sunt cu titlu general.

Fa un backup pentru siguranta.

 

1. Introducere. Generalitati

Crearea unui fisier .htaccess

Crearea unui astfel de fisier s-ar putea sa-ti dea ceva batai de cap la inceput. Scrierea fisierului este usoara, puteti folosi un editor text (gen notepad). S-ar putea sa intampini probleme cand salvezi fisierul deoarece .htaccess este o extensie neobisnuita (fisierul nu are nume, dar are o extensie de 8 caractere) si s-ar putea sa nu fie acceptata pe anumite sisteme de operare  (de exemplu Windows).

Pentru majoritatea sistemelor de operare, tot ce trebuie sa faci este sa salvezi fisierul sub forma:

“.htaccess”

(inclusiv ghilimelele). Daca nu functioneaza, poti sa il redenumesti (de exemplu htaccess.txt) dupa care il incarci pe server. Odata incarcat, poti sa redenumesti fisierul utilizand un program FTP.

Setarea paginilor de eroare personalizate

Cea mai populara intrebuintare a fisierelor .htacces este setarea paginilor de eroare, personalizate.

Aceasta optiune iti da posibilitatea sa creezi mesaje personalizate (de exemplu pentru un fisier negasit) in loc sa folosesti mesajul standard al hosterului. Acest lucru ii da site-ului tau o nota de profesionalism in cazul in care se va intampla sa fie erori. De asemenea, iti permite sa creezi scripturi care sa te informeze daca apare o eroare.

Poti sa folosesti paginile personalizate pentru orice eroare, atata timp cat cunosti codurile, cum ar fi 404 not found (pagina negasita) adaugand urmatoarea comanda in  fisier .htaccess:

ErrorDocument coderoare /file.html

Exemplul 1: daca am un fisier paginainexistenta.html in radacina directorului (root directory) site-ului meu si vreau sa il folosesc la o eroare 404 scriu comanda:

ErrorDocument 404/ paginainexistenta.html

Exemplul 2: daca fisierul nu se afla in radacina directorului, trebuie sa specifici calea directa catre acel fisier:

ErrorDocument 500 /paginieroare/500.html

Mai jos regasesti cele mai intalnite coduri de eroare:

401 – Authorization required

400 – Bad request

403 – Forbidden

500 – Internal server error

404 – Wrong page

Tot ce ai de facut este sa creezi un fisier care sa se afiseze cand apare eroarea, sa il incarci pe server si sa adaugi comanda de apelare in fisierul .htaccess

2. Comenzi .htaccess

Dezactivare afisare director

Uneori, fara un motiv anume, se intampla sa nu ai un fisier index in directorul radacina. Asta inseamna ca daca cineva tasteaza numele directorului in bowserul de internet, se va afisa o lista cu toate fisierele din acel director. Acest lucru poate afecta securitatea site-ului tau.

Pentru a preveni astfel de incidente, (fara sa fie nevoie sa creezi o multime de fisiere “index” ) poti sa introduci o comanda in fisierul .htacces pentru a bloca afisarea directorului:

Options -Indexes

Banarea/Permiterea anumitor IP-uri

In unele situatii s-ar putea sa doresti sa permiti doar anumitor IP-uri accesul pe site (de exemplu abonatii unui furniozr de internet) sau vrei vrea sa blochezi anumite IP-uri (de exemplu pentru evitarea spam-urilor pe forumuri. Pentru a putea face acest lucru, trebuie sa stii adreele IP pe care doresti sa le blochezi, iar cum majoritatea vizitatorilor au adrese IP dinamice s-ar putea sa nu fie cea mai eficienta solutie.

  • Poti sa blochezi un IP folosind:

deny from 000.000.000.000

Unde 000.000.000.000 e  IP-ul pe care doresti sa il banezi

  • Poti sa permiti accesul unui IP folosind:

allow from 000.000.000.000

Unde 000.000.000.000 este IP-ul caruia ii dai acces

  • Poti sa blochezi accesul tuturor utilizatorilor la un director folosind:

deny from all

Trebuie luat in calcul faptul ca aceasta comanda va perminte utilizarea scripturilor din acel director.

Setare fisiere index alternative

S-ar putea sa nu doresti sa utilizezi de fiecare data fisierele index.htm sau index.html ca fisiere index ale unui director.

Exemplu:  daca folosesti fisiere .php in site, s-ar putea sa vrei ca index.php sa fie indexul unui director.

Nu esti limitat doar la fisierele “index”. Folosind .htaccess poti seta oricum doresti, de exemplu: fisier_oarecare.html

Alternativele fisierelor sunt introduse intr-o lista. Serverul le va prelua de la stanga la dreapta, verificand daca acestea exista, iar daca toate sunt inexistente, atunci va afisa continutul directorului (asta doar daca nu ai dezactivat aceasta optiune).

DirectoryIndex index.php index.php3 messagebrd.pl index.html index.htm

Redirectionarea catre alte pagini web

Una dintre cele mai utile functii .htaccess este redirectionarea interogarilor spre alte fisiere, fiind situate pe acelasi server sau pe un site cu totul diferit. Poate fi extrem de folositor daca schimbi numele unui fisier dar in acelasi timp sa lasi utilizatorii sa il acceseze.

Redirect /locatie/dela/radacina/fisier.ext

Alte exemple:

redirectionarea de la o pagina .html la una .php:

Options +FollowSymLinks
RewriteEngine on
RedirectMatch 301 (.*).html$ http://www.pagina-ta.com$1.php

redirectionarea de la www la non www:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} !^pagina-ta.com
RewriteRule (.*) [R=301,L]

 

redirectionarea de la non www la www:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^pagina-ta.com
RewriteRule (.*) [R=301,L]

 

redirectionarea intregului site:

Redirect 301 /

3. Securizarea datelor

Cu toate ca exista multe inrebuintari ale fisierului .htaccess, probabil cea mai utila este protejarea fisierelor din site. Chiar daca si JavaScript permite acelasi lucru, doar .htaccess iti poate oferi securitate totala (accesarea directoarelor se face doar pe baza de parola, nu exista cai alternative).

Adaugarea parolei pentru un director se face in doi pasi: adaugarea liniilor de comanda fisierului .htaccess in directorul pe care doresti sa il securizezi

Directorul si subdirectoarele din acesta vor fi protejate prin parola:

AuthName “Nume”
AuthType Basic
AuthUserFile /home/www/.htpasswd
Require valid-user

In loc de “Nume” poti pune denumirea directorului care este protejat sau orice alta denumire specifica, de exemplu “Members Area”.

/home/www/.htpasswd ar trebui schimbata pentru a directiona calea completa catre fisierul .htpasswd (detalii in continuare).

Daca nu cunosti calea completa a serverului, trebuie sa contactezi administratorul de sistem pentru detalii.

 

Fisierul .htpasswd

Protejarea unui director cu parola necesita mai multa munca decat orice alta functie .htaccess deoarece trebuie sa creezi un fisier care sa contina utilizatorii si parolele care au acces la site. Acestea ar trebui salvate intr-un fisier care (implicit) trebuie denumit .htpasswd .

La fel ca si fisierele .htacces, acesta este un fisier fara denumire si o extensie de 8 caractere. Poate fi introdus oriunde in site (deoarece parolele sunt criptate), dar e recomandat sa il salvezi in afara radacinii site-ului, astfel incat va fi imposibil de accesat de pe internet.

Introducerea utilizatorilor si parolelor

Odata creat fisierul .htpasswd (se poate utiliza un editor de text obisnuit), trebuie sa introduci utilizatorii si parolele pentru accesarea site-ului. Trebuie introduse asa:

username:password

unde parola este forma criptata a parolei. Pentru a cripta parola va trebui sa folosesti fie unul dintre scripturile gata scrise disponibile pe internet, sau poti sa scrii unul chiar tu.

Daca sunt mai multi utilizatori, atunci adauga linii suplimentare in fisierul .htpasswd, in acelasi format. Exista scripturi gratuite pe internet care gestioneaza fisierele .htpasswd si care iti permit introducerea sau stergera de utilizatori, automat.

Accesarea site-ului

Cand incerci sa accesezi un site protejat de un fisier .htaccess, din browser se va afisa o fereastra pop-up ce va solicita autentificarea prin utilizatorul si parola.

Daca ti se pare incomod, exista scripturi disponibile pe internet care iti permit sa incorporezi o fereastra de autentificare in site.

De asemenea, poti sa introduci adresa in browser, felul urmator:

http://utilizator:[email protected]/director/

.htaccess este unul dintre cele mai utile fisiere pe care un webmaster le poate utiliza. Exista o gama larga de intrebuintari cu ajutorul carora economisesti timp si sa maresti securitatea pe site-ul tau.

Autor Brandusa Moldovan

Sunt membra a echipei Zooku Solutions, iar scopul meu este sa iti ofer informatii folositoare in desfasurarea activitatii, configurarea setarilor site-urilor sau aplicatiilor folosite de acestea.

Email | Web | Twitter | Facebook | Alte articole de

This article has 2 comments

  1. tudosa viorel

    Buna ziua, am facut o redirectionare ( 301 ) si am adaugar htaccess in cpanel si in interior am adaugat codurile respective si dupa propagare am vazut rezultatul care de fapt nu-l doream.Am sters htaccess, nu-l mai vad in director fisiere, il caut si-l gaseste…..si cand caut site-ul imi arata pag.404 not found.Va rog frumos sa ma ajutati cu un sfat ca nu mai pot intra nici in wp-admin.

  2. Brandusa Moldovan

    Buna Viorel,
    Site-ul returneaza eroarea “The page isn’t redirecting properly”, este posibil ca regula de redirectionare nu s-a creat corect, sau sunt probleme de compatibilitate. Iti recomand sa contactezi furnizorul unde ai gazduit site-ul, dansii te pot ajuta cu mai multe detalii.

Scrie un comentariu

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.