Implementasjon av µURL.

µURL.

mURLJeg satt for en stund tilbake og lurte på hvordan tjenester som bit.ly og tinyurl.com fungerte og fant ut at jeg likesågodt kunne finne dette ut ved å lage et slik tjeneste selv. Jeg valgte å bruke Apache som web-server med mod_rewrite, PHP som scriptspråk og SQLite som database.

Man trenger en dedikert web-server til dette, eller iallefall en virtuell host som enten går på en egen adresse eller port. Rewrite regelen settes ved følgende i httpd.conf:

RewriteRule ^/(.*) /index.php?c=$1$2$3

Så er det bare å lese inn GET parameteren “c” og finne korresponderende hash i databasen når man skal gjøre redirect oppslag.

Hvis “c” ikke oppgis antar man at brukeren skal legge inn en ny URL og skriver ut et eget skjema som håndterer dette. Før skjemaet skrives ut, sjekker scriptet om det mottar POST data (URL og evt. alias data) og legger disse inn i databasen. Alias brukes for å lage kort URLer uten kryptiske hasher, det vil si, man bestemmer hashen selv.

Det er sikkert endel som stusser på hvorfor jeg bruker SQLite til dette, og det er faktisk flere gode grunner til dette. For det første trenger jeg bare en liste med hasher og korresponderende URLer, pluss at dato og IP adresse lagres. SQLite er enkelt å bruke og krever ikke at man har en egen database kjørende i et miljø som som trolig skal kjøre issolert fra andre ting uansett. SQLite tar seg av fil-låsing noe som gjør den foretrukket over å lagre data i flate filer. Og, det viktigste av alt, jeg har ikke brukt SQLite tidligere slik at jeg fikk litt ekstra erfaring med noe nytt.

Koden og instruksjoner for µURL kan lastes ned fra: http://www.student.uit.no/~paalde/software/

Leave a Reply

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