Brugeroplevelse.dk, del 2: Gode URL-er med Movable Type

Forrige | Neste

Jeg var ansvarlig for stort sett alt annet enn grafisk design og innhold på brugeroplevelse.dk, noe som gjorde at jeg fikk bestemme bl.a. hva vi skulle bruke som CMS. Så jeg bestemte Movable Type, da det er veldig billig og bra nok i massevis for prosjekter av denne størelsen. Videre bestemte jeg at vi skulle ha meningsfulle og fremtidsikrede URL-er. For det er lurt.

Med meningsfulle og fremtidssikrede URL-er mener jeg:

Merk at Movable Type sine standard-URL-er for innlegg hverken er gode eller fremtidssikrede, av flere grunner. For det første er default adresse for et innlegg av typen 000123.html. Dette er Movable Type sine interne id-er i databasen for innlegg. En ting er at de ikke gir mening (sier noe om innholdet) eller er fremtidssikret (de bruker filnavn avhengig av teknologi). En helt annen og mer graverende ting er at de ikke er konsistente. Hvis man skifter server eller må bygge opp bloggen / webstedet på nytt vil alle innleggene få tildelt nye id-er, og linker vil derfor bli brutt.

Ikke bra, men lett å rette på.

Litt generelt om bloggoppsettet

Jeg har skrevet et eget innlegg om hele bloggoppsettet, men den bloggen som styrer styrkeprøveseksjonen er en vanlig blogg på alle måter, med forside, arkiv, og permalinker.

Det er likevel verd å merke seg at jeg har støttet meg mye til Keywords-feltet under blogginnlegg (new / edit entry) for å generere URL-er, og på kategorier for å skille sider fra hverandre. Mer om dette kommer.

For å få frem keywords-feltet må man velge new / edit entry, gå helt nederst og velge “Customize the display of this page”, velge custom og klikke av Keywords-feltet sammen med de andre du vil ha med. Jeg sier dette fordi jeg har lett og lett etter dette Keywords-feltet jeg har lest om uten å finne det noen plasser. Men det er kanskje bare meg som er svimete.

Styrkeprøvebloggen

Styrkeprøvebloggen er som sagt en vanlig blogg på alle mulige måter, med en forside, et arkiv, permalinker etc. I tillegg har den én side som ikke består av blogginnhold (blogginnhold er bare de enkelte styrkeprøver).

Å lage meningsfylte URL-er for denne bloggen er rimelig enkelt. Under Weblog Config → Archiving skriver du for Individual (permalink) under Archive File Template:

<$MTEntryDate format="%Y/%m/%d"$>/<$MTEntryKeywords$>/index.php
Som genererer en URL med følgende oppsett:
../år/mnd/dag/keyword/index.php

Og for Monthly:

<$MTEntryDate format="%Y/%m/"$>index.php
Som genererer en URL med følgende oppsett:
../år/mnd/index.php

Verre er det (nesten) ikke. En ting man må huske på her er å skrive det man vil skal være URL-en til innlegget i Keywords-feltet for hvert innlegg. Det er altså litt merarbeid. Grunnet det bruker noen heller tittelen som URL, ved å sette inn <$MTEntryTitle dirify="1"$> hvor jeg har satt inn <$MTEntryKeywords$> i oppsettet over. Dette er litt mindre arbeid, men fører til at linken brytes hvis man må endre på tittelen. Og ikke minst kan det føre til svært, svært lange URL-er. Og du har mer kontroll ved å bruke keywords.

Så siste ting, jeg ville som sagt ikke ha filnavnet index.php med i URL-en. Dette kan løses på mange måter. Kjører webserveren din Apache kan du eksempelvis bruke mod_rewrite i .htaccess. Men dette ble for avansert for mitt lille hode. Jeg fant heller en plugin til Movable Type som gjør det samme nesten like godt, nemlig Brad Choate sin Regex Plugin. Installer denne som Brad sier i tekstfila som medfølger, og sett så følgede linje inn alle plasser hvor du linker til innlegg ved hjelp av <$MTEntryPermaLink$> eller lignende (i praksis alle malene dine):

<MTAddRegex name="stripFile">s|/index\.[^/]+$|/|g</MTAddRegex>

Sett dette langt opp i dokumentet, så regelen gjelder for hele dokumentet. Denne må så aktiveres hver gang man linker til en URL hvor man vil fjerne filnavnet på følgende måte:

<a href="<$MTEntryLink regex="stripFile"$>">Innleggstittel</a>;

<a href="<$MTArchiveLink regex="stripFile"$>">Månedsarkiv</a>

Dette gir innlegg med adresser som:

../år/mnd/dag/keyword/

Dette er det samme som over, men uten et filnavn som sier noe om teknologien som er brukt.

Så var det ett innlegg som ikke hadde noe med bloggen å gjøre, nemlig den siden som handler om styrkeprøven. For at denne ikke skal bli listet opp i arkivet var det nødvendig å legge alle styrkeprøver i en egen kategori, nemlig “Styrkeprøven”, og det siste innlegget i en annen kategori, nemlig “om_styrke”. I main archive index trakk jeg så ut alle innlegg i kategorien “styrkeprøven”, og lagde en egen index som trakk ut det ene innlegget i “om_styrke”. Mer om hvordan man gjør dette finnes i neste innlegg om det generelle oppsettet.

Voilà! Du har satt opp Movable Type med gode, fremtidssikrede URL-er. Eksempelvis har den styrkeprøven skrevet 1. mars 2004, som omhandler webstedene til Dell og Zitech, følgende URL:

http://www.brugeroplevelse.dk/styrkeproven/2004/03/01/dell_zitech/

I bloggoppsettet er både site path og archive path satt til det samme, nemlig /styrkeproven/, /2004/03/01/ blir generert av publiseringsdatoen i Movable Type, og /dell_zitech/ blir generert av at jeg har skrevet dell_zitech som keyword til dette innlegget.

Skal man sette opp en ny blogg med Movable Type er det definitivt verd å ta seg fem minutter med å sette ting opp på denne, eller tilsvarende, måte. Ellers får du et lite helvete hvis du skal rette det siden (jeg har eksempelvis lyst til å gjøre det her på denne siden, men orker ikke helt tanken på å videresende ~150 sider).

Mer om dette, og ting jeg hadde hjelp av:

Dette innlegget ble så langt at jeg valgte å lage det til to, neste innlegg omhandler det generelle oppsett av de forskjellige bloggene som styrer www.brugeroplevelse.dk

Skrevet Monday 29. March 2004 klokka 13:49 og arkivert under Web og webutvikling. Merkelapper: | | | |

2 kommentarer:

  1. Hei Vegard.
    Jeg har prøvd å endre mal oppsettet mitt i MT etter din oppskrift, men får samme feilmelding hele veien at jeg ikke får skrive til file/ directory fordi det ikke finnes???? Jeg endret local site path og archive path slik du hadde skrevet. Har prøvd flere varianter men alle gir samme feilmelding. Kan du hjelpe?
    mvh Susanne Huin105- Humanistisk Informatikk


    Sa Susanne Dahl Tuesday 27. April 2004 klokka 10:43 | #

  2. Det var da litt underlig. Et problem kan rett og slett være at mappen du skal skrive til (archive path) ikke er opprettet, da MT ikke kan generere den slags mapper. Da er løsninger å gå inn vha. FTP og opprette mappen manuelt.

    En annen ting som ofte er grunn til feilmeldinger i MT er at permissions ikke er satt riktig. Man skal som regel ha permissons satt til 755, men av og til man sette den til 777 for at ting skal fungere.

    For å sette permissions kan du enten bruke telnet og chmod, men dette er litt avansert. Jeg bruker bare FTP-klienten min (WS_FTP), merker mappen jeg vil sette permissions på (eksempelvis hovedmappen som alt ligger i), høyreklikker og velger ‘chmod (UNIX)’.

    For å sette permissions til 755 klikker du av read, write, execute på owner. read og execute på group og read og execute på other.

    For å sette permissions til 777 klikker du av read, write, execute på alle.

    Eksperimenter litt med det, så går det seg sikkert til. Hvis ikke så bare spør!


    Sa Vegard Tuesday 27. April 2004 klokka 11:38 | #

Kom med en kommentar

Trackback? http://vaj.no/2004/03/brugeroplevelsedk-del-2-gode-url-er-med-movable-type/trackback/

Abonner på innlegg Abonner på kommentarer (Hva er dette?)