.htaccess este un fisier de configurare care reprezinta modalitatea prin care serverul web (oferit de serviciul de web hosting) administreaza modificarile pentru configurarea site-ului din fiecare folder/subfolder.

Fisierul de configurare .htaccess are ca functii principale de a ajuta la redirectarea site-ului, a link-urilor specifice, in protejarea unui folder cu parola, blocarea botiilor nedoriti de indexare, setarea de accesare pe IP-uri specifice si multe alte functionalitati, care vor fi prezentate in acest articol.

Trebuie mentionat faptul ca acest fisier de configurare este foarte puternic, astfel cea mai mica eroare de sintaxa (adaugarea unui spatiu in plus, etc.) poate cauza defectiuni la nivelul site-ului. Inainte de a efectua orice modificare asupra fisierului .htacces sau la site, este recomandat salvarea unui backup al contului sau doar a fisierului .htaccess.

Un alt aspect important de mentionat este faptul ca fisierul .htaccess este un fisier ascuns (hidden file) astfel pentru a identifica fisierul respectiv trebuie sa va asigurati ca optiunea de a viziona fisierele ascunse este activata. In cPanel afisarea fisierelor ascunse se seteaza din File Manager – Settings (partea dreapta sus) si se bifeaza optiunea de “Show Hidden Files (dotfiles)”.

In principal CMS-urile folosesc astfel de fisiere de configurare pentru a mentiona serverului web cum sa utilizeze fisierele avute in interiorul folder-ul radacina, in acelasi timp si pentru subdirectoarele acestuia.

Mai jos vom prezente un numar de reguli de .htaccess utile pentru site-ul avut.

Blocarea accesului public la site

deny from all (aceasta regula va opri orice accesare la site si va returna mesajul de 403 - Forbidden)

Daca se doreste ca doar un anume IP sau mai multe IP-uri sa poate accesa site-ul atunci sub linia de deny from all se va adauga linia de “allow from (IP)”

deny from all
allow from xx.xx.xx.xx (in loc de xx.xx.xx.xx se va adauga IP-ul dorit)

Regula de “allow from ” se poate adauga de cate ori este nevoie si se introduce o linie noua cu noul IP care poate avea acces la site.

Se pot introduce si clase de IP-uri in functie de cate IP-uri sunt in clasa respectiva, precum ar fi “allow from xx.xx.xx.xx/24” sau “allow from xx.xx.xx.xx/8”

In acelasi timp se pot bloca si doar IP-uri sau clase de IP-uri specifice, daca se introduce urmatoarea linie in fisierul .htaccess:

deny from xx.xx.xx.xx (in loc de xx.xx.xx.xx se va adauga IP-ul dorit)

Blocare de accesare a unui fisier specific

<files denumirefisier.php>
Order allow,deny
Deny from all
</files>

Aceasta regula va opri accesul public la un fisier specific (in exemplul dat va fi denumirefisier.php).

Oprirea de afisare a continutului dintr-un director (folder)

Options All -Indexes

Regula respectiva va instrui serverul web sa furnizeze un raspuns de tip “403 – Forbidden” pentru orice solicitare de a vizualiza continutul unui director specific din site. Acest lucru se poate intampla daca in folder-ul specific nu exista un fisier index.php care sa opreasca afisarea continutului prezent in acesta.

Daca se doreste afisarea continutului din folder-ul specific atunci se va adauga urmatoarea linie

Options All +Indexes

Modificarea fisierului index default

DirectoryIndex skalewebhosting.html

Aceasta regula ii mentioneaza serverului web sa caute si sa afiseze ca index default fiserul – skalewebhosting.html. Aceasta regula trebuie setata in folder-ul in care se doreste modificarea fisierului index default (de regula fiind index.php/html)

DirectoryIndex numefisier.html index.html index.htm standar.htm

Aceasta regula este similara cu cea mentionata precedent, insa regula de DirectoryIndex va scana folder-ul root (locatia in care a fost introdusa regula) si va folosi primul index care indeplineste criteriile specificate in sintaxa. Importanta fisierelor de tip index se citeste de la stanga la dreapta.

Protejarea unui folder folosind username si parola

AuthType Basic
AuthName "protectie"
AuthUserFile "/home/user/.htpasswds/autentificare" <- ultima parte "autentificare" poate fi declarata sub oricare forma dorita.
require valid-user

Daca este introdusa aceasta regula in fisierul de configurare .htaccess atunci orice accesare pe folder-ul respectiv va necesita autentificare folosind un username si o parola care va fi declarata intr-un fisier din locatia “/home/user/.htpasswds/”.
In exemplul de mai sus vom folosi fisierul “autentificare”. Fisierul respectiv va trebui sa nu contina o extensie (precum ar fi .txt, .php, etc.) si in interiorul acestuia se va nota userul si parola:

user:parola

Setare de accesare a site-ului doar fara WWW (.site.ro)

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.examplu.ro [NC]
RewriteRule ^(.*)$ http://examplu.ro/$1 [L,R=301]

Setare de accesare a site-ului doar cu WWW (.site.ro)

RewriteEngine on
RewriteCond %{HTTP_HOST} ^examplu.ro [NC]
RewriteRule ^(.*)$ http://www.exemplu.ro/$1 [L,R=301,NC]

Setare de accesare a site-ului doar pe protocol securizat (indiferent de CMS)

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

ATENTIE: Pentru ca regula de accesare a site-ului doar pe protocol securizat (HTTPS://) sa functioneze, corect fara a cauza probleme de accesare, va trebui sa va asigurati ca exista un certificat SSL instalat la nivelul domeniului/subdomeniului.