MediaWiki
Selve installationen er meget kortfattet beskrevet her. Når jeg en dag får taget mig sammen, eller næste gang jeg opgraderer, bliver det lidt bedre dokumenteret.
Indholdsfortegnelse |
TODO listen
Jeg har nogle ideer til MediaWiki tilpasninger, som jeg måske får tid (lyst?) til at gøre noget ved en dag. Hvis du har en ide til hvordan det kan gøres, eller måske endda har lyst til at gøre det selv, så skal du være velkommen til at kommentere.
Og de ting der er gennemført
De rettelser jeg har lavet, både ren konfiguration og deciderede koderettelser, bliver beskrevet på denne side, hvis jeg regner med at andre kan have glæde af dem.
Interlanguage links
Jeg har patchet min test-Wiki, så sider med interlanguage links får tilføjet xml:lang i dens HTML-header. Pointen er at det hjælper søgemaskiner og andre webspidere til at finde den samme side på andre sprog. Syntax er beskrevet på W3C's hjemmeside. Patchen og beskrivelsen af den er her.
URL rewrite
Med Apaches mod_rewrite kan man opnå nogle ret interessante resultater. Uheldigvis indebærer det omgang med mod_rewrite. Kommentarerne under Summary passer meget godt på den sindstilstand jeg ender med at have når jeg skal til at rode. Men det kan godt være besværet værd. Jeg har lavet følgende tilpasninger:
LocalSettings.php: $wgScriptPath = ""; $wgScript = "$wgScriptPath/w/index.php"; $wgArticlePath = "$wgScriptPath/$1";
Regulære artikler bliver prefixed med $wgArticlePath, mens resten bliver prefixed med $wgScript. Så ovenstående betyder altså at linket til denne side bliver til http://wiki.wegge.dk/MediaWiki mens edit linket til den er noget værre at se på, nemlig http://wiki.wegge.dk/w/index.php?title=MediaWiki&action=edit . Men det vender vi tilbage til. Lige for øjeblikket skal vi nemlig have fat i httpd.conf (eller .htaccess) i en fart, for de links der bliver genereret med ovenstående opsætning fører direkte til en fejl 404. Så derfor griber vi fat i mod_rewrite:
RewriteCond %{REQUEST_URI} !^/(stylesheets|images|skins)/
RewriteCond %{REQUEST_URI} !^/(redirect|texvc|index).php
RewriteCond %{REQUEST_URI} !^/error/(40(1|3|4)|500).html
RewriteCond %{REQUEST_URI} !^/favicon.ico
RewriteCond %{REQUEST_URI} !^/robots.txt
RewriteCond %{REQUEST_URI} !^/w/
RewriteRule ^/(.*)$ /index.php/$1 [L,QSA]
RewriteRule ^/w/(.*)$ /$1 [L,QSA]
Det er vigtigt at huske RewriteCond. Dels er det i grove træk kun de klikbare links der bliver påvirket af rettelserne i LocalSettings.php. Dels er der nogle specielle URLer som ikke direkte har noget at gøre med MediaWiki, men som til gengæld forventes af de fleste browsere og/eller webspidere. Bemærk at RewriteCond kun forholder sig til den næstkommende RewriteRule. Så selvom det ser lidt selvmodsigende ud ved første blik, er der masser af mening i at undlade omskrivning af ^/w/, for så et par linier længere nede at gøre det alligevel. Selve omskrivningen er lige ud af landevejen. Alt hvad der ikke er nævnt i RewriteCond bliver sat i enden af /index.php/ For eksempel bliver http://wiki.wegge.dk/MediaWiki omskrevet til http://wiki.wegge.dk/index.php/MediaWiki, hvilket præcist er det vi ønsker. Den anden omskrivning fjerner så til gengæld /w, så http://wiki.wegge.dk/w/index.php?title=MediaWiki&action=edit bliver til http://wiki.wegge.dk/index.php?title=MediaWiki&action=edit. Og derfor kommer begge typer af links til at fungere.
Og hvorfor er det så smart? Det er der 2 grunde til. Dels er en kort URL både pænere at se på og nemmere at huske. Men den vigtigste grund er at vi nu kan bestemme hvilke sider vi vil servere til GoogleBot, msnbot, Slurp og alle de andre. Og det er ikke smart at lade dem se alle sider. De specielle sider indeholder nemlig alle "noindex,nofollow" i robots metatagget. Så derfor er det spild af båndbredde og serverbelastning at sende disse sider i første omgang. Så derfor laver vi en robots.txt:
# Alle og enhver må komme forbi artiklerne, men der er ingen grund til # at indeksere de specielle sider, så vi lukker for adgangen til /w/ User-agent: * Disallow: /w/
Dette sikrer at de korrekt programmerede spidere kun ser de sider de må, nemlig selve artiklerne.