Instans CMS kan omskrive sideadresser (url'er) fra standard kode-sprog til såkaldt "pæne" url'er, der er nemme at læse/skrive og som giver siderne et ekstra skub på søgemaskinernes resultatsider.
Stort set al standardfunktionalitet i hjemmesiden kan få pæne sideadresser - det gælder bl.a. sider, nyheder, kalenderbegivenheder, billedgallerier samt varegrupper og produkter i shop modulet.
Sideadresser auto-genereres med udgangspunkt i f.eks. sidetitler, men kan nemt tilpasses på under "Søgeoptimering" på de enkelte indholdselementer.
Eksempler:
| Type | Adresse uden rewrite | Adresse med rewrite |
|---|---|---|
| Side | http://www.domæne.dk/index.php ?pageid=42 |
http://www.domæne.dk/douglas-adams/ eller http://www.domæne.dk/forfattere/douglas-adams/ (med "vis hierarkier slået til) |
| Nyhed | http://www.domæne.dk/index.php ?mode=news&id=404 |
http://www.domæne.dk/bog-nyt/ny-bog-om-potteplanter/ |
| Seneste begivenheder i kalenderen "Det sker på biblioteket" | http://www.domæne.dk/index.php ?mode=events&id=2 |
http://www.domæne.dk/kalender/det-sker-paa-biblioteket/ |
| Produkt | http://www.domæne.dk/index.php ?mode=shop&groupid=2&productid=42 |
http://www.domæne.dk/shop/science-fiction /douglas-adams/mostly-harmless/ |
Systemet omskriver automatisk til "pæne" side adresser, hvis du:
For at slå "pæne" sideadresser fra, gør det samme - bare omvendt. :-D
Instans benytter Apaches Mod-Rewrite kombineret med en række specialfunktioner (php) til at omskrive url'er.
En ikke-omskrevet url i instans-cms består af en eller flere af følgende elementer:
"mode=" omskrives ved opslag i tabellen REWRITE_MODES. her kan man f.eks. bestemme om "mode=newsletter" skal omskrives "/nyhedsbrev/", "/nyhedstjeneste/" eller noget helt tredje. Instans CMS understøtter omskrivning på flere sprog og derfor bør man oprette en række pr. mode pr. sprog i REWRITE_MODES tabellen. Der kan maksimalt være ét mode-keyword i hver url, og det skal være det første element efter base_url.
arkivid og indholdsid omskrives ved opslag i tabellen REWRITE_KEYWORDS. Typisk autogenereres rækkerne i REWRITE_KEYWORDS med baggrund i sidetitel eller lignende første gang et link genereres på siden - f.eks. i en menu. Keywords kan naturligvis redigeres under "søgeoptimering" på de enkelte elementer. Keywords til arkiver, som ikke kan redigeres i cms'et (f.eks. nyhedsarkiver) skal tilrettes direkte i REWRITE_KEYWORDS tabellen. Da indhold altid har et bestemt sprog, er keywords de samme på alle sprog.
Øvrige variabler, som ønskes omskrevet, skal oprettes i tabellen REWRITE_METHODS. Instans CMS understøtter omskrivning på flere sprog og derfor bør man oprette en række pr. mode pr. sprog i REWRITE_METHODS tabellen. Methods står altid til sidst i en url. Således kan sider i en standard-opsætning udskrives ved at tilføje /print/ til sidst i url'en. Hvis der skal en værdi med variablen, kan det ske på formen "metodenavn__værdi" - f.eks. /offset_10/
Hvis dele af en url ikke kan omskrives, bliver hele den oprindelige url benyttet på sitet. Det betyder f.eks. at hvis man har et plugin, der benytter en $_GET variabel, som ikke er registreret i REWRITE_METHODS tabellen, vil url'en ikke blive omskrevet.
De centrale funktioner er:
/cms/frontend/frontend_common.inc.php
Matcher alle url'er i href- og action attributter. selve omskrivningen håndteres af funktionen rewrite_urls_callback.
/cms/sharedfunctions.inc.php
Er primært callback-funktion for function rewrite_links, man kan også omskrive en enkelt url.