Po završetku redizajna sajta, i kompletnom prelasku sa statičkih .html na dinamičke .php stanice, pogledao sam log sajta, da bih se uverio da je sve na svom mestu (ako ste i vi kod Verata, to je /log/ime-domena-err datoteka).
Užasnuo sam se gomilom grešaka 🙁 prvenstveno HTTP/404 Page not found. Normalno, više od polovine pogodaka na moj sajt dolazi sa raznih pretraživača, a oni ne osvežavaju sadržaj keša preterano često – Google ima keširan sajt od pre mesec dana. Ok, trebalo je rešiti pitanje šta sa starim adresama, koje su se negde zadržale (a u svetlu inicijative “no broken links”).
Jedna od opcija je kreiranje svih strana koje su i ranije postojale, sa kodom za redirekciju na novu stranu (meta tag) ili linkom koji vodi na novu stranu za slučaj da pregledač ne poštuje meta direktive. No, to je bilo krajnje ružno rešenje; posle malo guglovanja, uz činjenicu da je web server Apache, našao sam idealno rešenje: .htaccess datoteka! (o kojoj ama baš nigde ništa ne piše na Veratovom sajtu).
.htaccess je obična tekstualna datoteka, namenjena kontroli ponašanja web servera na direktorijum nivou; primenjuje se u direktorijumu gde je, kao i u svim poddirektorijumima ispod koji nemaju svoju .htaccess datoteku.
Pomoću ovde datoteke moguće je postavljati prava pristupa, kontrolisati redirekciju kao i koja strana odgovara na HTTP greške. Korišćenje je vrlo jednostavno; otvorite je u tekst editoru i postavite:
redirect 301 /index.html http://www.vesic.org/index.php
redirect definiše tip komande, 301 kod koji će se poslati pregledaču (Moved Permanently, za slučaj da je pretraživač u pitanju, znaće da tražena stranica nije važeća i staviće novu u red za keširanje) kao i ciljni URL na koji treba preusmeriti pregledač. Ovo je client-side redirekcija; ako želite da radite server-side redirekciju (brže, ali nema informacije za korisnika da je do promene došlo) koristite Rewrite direktive (rewriteEngine, rewriteCond, rewriteRule).
Kada već menjamo fajl, nije loše dodati i ovo:
ErrorDocument 404 /404.php
Ovako sve HTTP 404 greške preusmeravamo na našu stranu, i time izbegavamo standardnu stranu od provajdera. Za više detalja o .htaccess datoteci, molim pogledajte ovde.