Intr-un articol precedent, publicat aici, am descris modul in care pot fi scrise adrese URL "prietenoase" folosind fisierul .htaccess. Evident, nu este singurul lucru care poate fi facut iar in continuare ma voi ocupa si de altele, din nou nu de toate, ci de acelelea pe care orice dezvoltator web ar trebui sa le stie.
.htaccess (hypertext acces) este un fisier de configurare pentru un server Apache. El este un fisier ascuns si are rolul de a adapta configurarile serverului (descrise in httpd.conf si php.ini) doar la folderul in care este pus si la subfolderele acestuia. .htaccess este un fisier text neformatat, deci teoretic ar putea fi editat cu un editor obisnuit de texte, dar daca remarcati punctul de extensie de la inceputul numelui lui, utilizarea lui Notepad nu este indicata decat daca salvati cu numele ".htaccess" (cu ghilimele). Din aceleasi motive, in Windows, un fisier text oarecare nu poate fi redenumit in .htaccess.
In mod obisnuit fisierul nu se afla in radacina hostingului dumneavoastra fiind rolul dumneavoastra sa-l creati si sa-l ridicati pe server.
Nu trebuie sa exagerati cu utilizarea acestui fisier. In exces, dauneaza serverului sau chiar poate conduce la nefunctionarea acestuia. Folositi-l doar daca nu puteti rezolva altfel problema.
Si acum, dati click pe link-ul de mai jos ca sa aflati ce se poate face.
Problema I
Google penalizeaza duplicarea continutului: continutul aceleasi pagini sa fie accesabil de pe adrese URL diferite, de exemplu, exemplu.com si www.exemplu.com
Solutie
Se creaza sau se modifica fisierul .htaccess in felul urmator:
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^www\.exemplu\.com$ [NC] RewriteRule .? http://www.exemplu.com%{REQUEST_URI} [R=301,L] #sau, la alegere RewriteCond %{HTTP_HOST} !^www.exemplu.com$ [NC] RewriteRule ^(.*)$ http://www.exemplu.com/$1 [L,R=301]
Problema II
Interzicerea vizualizarii continutului unui subdirector. Daca cineva tasteaza www.exemplu.com/images, ar putea sa vada continutul directorului images, lucru care este daunator la securitate. Se poate folosi si un fizier gol index.html, dar ar trebui cate unul in fiecare subdirector.
Solutie
Este solutie pentru toate subdirectoarele site-ului dumneavoastra. Se creaza sau se modifica fisierul .htaccess in felul urmator:
Options All -Indexes
Problema III
Transforma o adresa de forma exemplu.com/cosmetice/sapun.html in exemplu.com/sapun.html.
Solutie
Se creaza sau se modifica fisierul .htaccess in felul urmator:
RewriteEngine On RewriteRule ^cosmetice/(.+)$ http://www.exemplu.com/$1 [R=301,L]
Problema IV
Redirectarea unui domeniu vechi la unul nou pentru a nu pierde pozitia castigata in Google cu cel vechi.
Solutie
In principiu se mapeaza numele domeniului vechi pe cel nou. Se creaza sau se modifica fisierul .htaccess in felul urmator:
RewriteEngine On RewriteRule ^(.*)$ http://www.domainname.com/$1 [R=301,L]
Problema V
Modificarea numelui paginii implicite. Permite inlocuirea paginii index cu orice alt nume, de exemplu about.
Solutie
Se creaza sau se modifica fisierul .htaccess in felul urmator:
DirectoryIndex about.html
Problema VI
Protejarea unei pagini, de exemplu .htacces.
Solutie
Se creaza sau se modifica fisierul .htaccess in felul urmator:
order allow,deny deny from all
Problema VII
Banarea unor IP-uri.
Solutie
Se creaza sau se modifica fisierul .htaccess in felul urmator:
allow from all deny from 192.168.0.1 deny from 192.168
Problema VIII
Pagini de eroare personalizate pentru 401, 403 etc.
Solutie
Se creaza sau se modifica fisierul .htaccess in felul urmator:
ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php
Observatii
Scrierea unei reguli RewriteRule va afecta si subdirectoarele. In aceste directoare veti scrie alte fisiere .htaccess cu reguli corespunzatoare.
Informatii complete despre fisierul .htacces gasiti pe site-ul oficial Apache.
Voi reveni cu informatii suplimentare despre utilizarea acestui fisier.
Multe multumiri...
Internetului ca exista si celor care ne mai spun pe gratis cate ceva, chiar daca i-a costat mult timp sa invete!