For å gjøre 1001 Spill mer søkemotorvennlig, og å forbedre log-analyse-resultatene har jeg ønsket å gi alle spill beskrivende URLer. Man kan f.eks. se for seg en ideell URL til spillet Starbase Defender på formen:
www.1001spill.no/spill/starbase_defender

Oppdatering, 24.01.2007: Jeg har nå implementert løsningen uten bruk av id-verdier. Valgte å lage en database-kolonne for tittel-urlen og gjennomførte det ekstra sql-kallet.

Dessverre medfører dette to kompliserende ledd i koden:

  • En ekstra kolonne i databasen/evt. cache som inneholder url-tittelen på spillet.
  • En ekstra sql-spørring/oppslag i cache, hvor man finner database-id tilhørende spillet.

På toppen av dette økes antall feilkilder. Hva om det er flere spill med samme navn etc.

Alternativ metode 1: Brukervennlige URLer med ID

En utrolig enkel fiks på dette er å føye til database-id-verdien i URLen:
www.1001spill.no/spill/starbase_defender/2015

Her kan man ignorere tittelen starbase_defender, hente ut ID-verdien med .htaccess-rewrite og slippe database-oppslaget.

Omskriving av
www.1001spill.no/spill/starbase_defender/2015

til det interne formatet:
www.1001spill.no/show.php?id=2015

Kan f.eks gjøres på følgende måte i .htaccess-filen:

RewriteCond %{REQUEST_URI} ^/spill/.*/([0-9]+)$RewriteRule ^.*$ /show.php?id=%1 [L]

Alternativ metode 2: Beskrivende navn til slutt

Id-verdien har ingen mening for brukerne. Derfor kan man vurdere å bytte plass:
www.1001spill.no/spill/2015/starbase_defender

Alternativ metode 3: Id og beskrivende navn

Id-verdien kan også føyes til den beskrivende teksten:
www.1001spill.no/spill/2015_starbase_defender

Hva er galt med metodene

Dessverre medfører alle metodene en del ulemper.

  • Den beskrivende tittelen har ingen teknisk betydning og både
    /spill/2015/starbase_defender
    /spill/2015/jippi_det_snoer
    Tar brukeren til samme side.
  • /spill/2015 vil også logisk sett være samme side
  • id-verdien gir ingen mening for brukerne, og de bør slippe å forholde seg til denne.

Konklusjon

Selv om jeg nå har implementert metode 2 på 1001 Spill, og dette utvilsomt er en klar forbedring fra tidligere, klarer jeg ikke helt å slå meg til ro.

Den ideelle løsningen: www.1001spill.no/spill/starbase_defender vil alltid være å foretrekke, og gi 1001 Spill URLer som forhåpentlig kan vare i årevis.


posted by andreeide January 24, 2007 10:50 am     |     read comments (2)

2 Responses to “Brukervennlige URLer med ID-verdi”

  1. Simon Says:

    Lagre URL navn i DB og se om det matcher med ID er en god work around for dette problemet.

    – Simon.

  2. Simon Says:

    Ang min forrige kommentar: fjern ID’en med å legge til URL navn i DB’en er da heller en alternativ workaround, så ikke at du ville fjerne ID taggen fra linken.

Leave a Reply