Napomena: Ovaj članak izvorno je objavljen na portalu Sistemac dana 31. svibnja 2011.
Kako smo u jednom od prethodnih članaka vidjeli, jedan od načina za preusmjeravanje, tj. skraćivanje URL-ova je upotreba tzv. 301 Redirect metode. Iz toga i proizlazi da skraćivanje URL-ova nije ništa drugo nego jednostavno preusmjeravanje. Kod skraćivanja je obično cilj da se neki jako dugačak URL skrati tako da zauzima što manje znakova. Zbog toga su imena domena servisa za kraćenje što kraća.
Ovaj članak ćemo pisati s pretpostavkom da imamo podešen web servis www.srce.hr na kojem se nalaze sadržaji, poddomenu s.srce.hr (na kojoj će se nalaziti skraćene adrese) te da se datoteke te poddomene nalaze u podmapi s_pod unutar Apache web mape. Isto tako, uzet ćemo da je URL koji želimo skratiti:
http://www.srce.hr/vijesti/kategorija1/novost_543.html
tako da mu skraćeni oblik bude:
http://s.srce.hr/543
Meta refresh
Kod web stranica postoji nekoliko načina za preusmjeravanje na novi URL. Zasigurno najjednostavniji način je ubacivanje odgovarajućeg koda u HTML naredbu meta. U tom slučaju mogli bismo na poslužitelju unutar mape 543 stvoriti datoteku index.html. Ime datoteke ovisi o postavkama poslužitelja — ako uzmemo za primjer Apache poslužitelj, potrebna podešavanja možemo napraviti pomoću direktiva iz Apache modula mod_dir — DirectoryIndex i DirectorySlash. U ranije spomenutu datoteku index.html upišemo sljedeći kod:
<meta http-equiv="refresh" content="0; url=http://www.srce.hr/vijesti/kategorija1/novost_543.html">
Na taj način, kada se u preglednik upiše adresa http://s.srce.hr/543, napravit će se preusmjeravanje na adresu navedenu unutar meta naredbe. Ovakvu metodu bolje je izbjegavati jer bi web pretraživači mogli penalizirati ovakav način preusmjeravanja.
JavaScript redirect
Na slične načine moguće je postići i preusmjeravanje pomoću JavaScripta:
<script type="text/javascript">
<!--
window.location = "http://www.srce.hr/vijesti/kategorija1/novost_543.html"
//-->
</script>
HTTP 301 i 302 kodovi
RFC2616 definira Hypertext Transfer Protocol i način na koji se on implementira. Unutar poglavlja 10 ovog RFC-a definirani su tzv. status codes. Nas u kontekstu ovog članka zanima kod 301 Moved Permanently. Kod 301 se može iskoristiti u različitim situacijama:
- preusmjeravanje URL-ova bez
wwwna početku na one koji imajuwww(non-www redirect), npr.http://srce.hrse preusmjerava nahttp://www.srce.hr - preusmjeravanje kompletnog sitea na novu domenu, npr.
www.srce.hrse preusmjerava nawww.srce.unizg.hr - pretvaranje URL-ova u tzv. lijepe URL-ove, npr. umjesto
http://www.srce.unizg.hr/?id=231pisat će sehttp://www.srce.unizg.hr/proizvodi-i-usluge/obrazovanje/tecajevi/... - preusmjeravanje pojedinog resursa na novu adresu — ovu mogućnost je moguće iskoristiti za skraćivanje URL-ova
Za preusmjeravanje se može iskoristiti i 302 Found. Za razliku od koda 301 koji znači trajno premještanje resursa na novu lokaciju, kod 302 označava privremeno premještanje resursa na novu lokaciju.
Preusmjeravanje u Apache .htaccess
U slučaju Apache poslužitelja ranije spomenuto preusmjeravanje (skraćivanje) moglo bi se napraviti tako da se u .htaccess datoteku upiše sljedeći kod:
redirect 301 /s_pod/543/ http://www.srce.hr/vijesti/kategorija1/novost_543.html
Za ovakav primjer bitno je da je na poslužitelju mapa 543 stvorena unutar mape s_pod. Unutar mape 543 ne treba biti prisutna niti jedna datoteka.
Ukoliko nemamo na raspolaganju neki mehanizam koji bi automatizirao izmjene i nadopunjavanje .htaccess datoteke, ovakav pristup može oduzeti jako puno vremena budući je za svaki URL potrebno ručno uređivati .htaccess datoteku.
Preusmjeravanje pomoću 301 Redirect je najpravilniji način za usmjeravanje web pretraživača na novu adresu (Google webmaster FAQ) i njegova implementacija ne bi trebala utjecati na poziciju vaših stranica unutar pretraživača.
Kao što se vidi, postoji veliki broj različitih načina koji se mogu iskoristiti za preusmjeravanje, odnosno skraćivanje URL-ova. Ukoliko nemate vremena za izradu vlastitog programa koji bi vam olakšao i automatizirao ovakve zadatke, predlažemo da posegnete za nekim gotovim rješenjem. U idućem članku ćemo pokazati jedno takvo rješenje — gotovu skriptu za tu namjenu u obliku vlastitog servisa za preusmjeravanje.