dokuwiki:urlrewrite

URLs umschreiben

Die URLs des Wiki werden umgeschrieben, damit sie wie statische Seiten aussehen.

Standardumsetzung

Die bereits in Dokuwiki eingebaute Umsetzung beinhaltet folgende Regeln:

Inhalt Beispiel einer Dokuwiki-URL Umgesetzte URL
HTML-Seiten wiki/doku.php?id=foobar wiki/foobar
Bilddateien wiki/lib/exe/fetch.php?media=foobar.jpg wiki/_media/foobar.jpg
Detailansicht wiki/lib/exe/detail.php?media=foobar.jpg wiki/_detail/foobar.jpg
Export wiki/doku.php?do=export_foo&id=bar wiki/_export/foo/bar

Erweiterung der Umsetzung

Zusätzlich zu den obigen Regeln habe ich noch folgende hinzugefügt, die ich für mein Statisches Layout brauche:

Inhalt Beispiel einer Dokuwiki-URL Umgesetzte URL
CSS-Daten /wiki/lib/exe/css.php?t=dokuwiki&tseed=1365300371“/> /wiki/_style/1365300371/dokuwiki/style.css
Javascript /wiki/lib/exe/js.php?tseed=1365300371 /wiki/_js/1365300371/js.js

Konfiguration

Apache

Das Modul “mod_rewrite“ des Apache wurde aktiviert:

merkur:~# a2enmod rewrite

Und die Datei /etc/apache2/conf.d/wiki.conf so verändert:

Options -Indexes +FollowSymLinks
 
Alias /wiki "/home/aurel/wiki/"
<Directory "/home/aurel/wiki">
        Options -Indexes +FollowSymLinks
        AllowOverride All
        order allow,deny
        allow from 127.0.0.1 192.168.0.0/16
 
        ## Comment out these rules in if you want to have nice URLs
        RewriteEngine on
        RewriteBase /wiki                 
 
        RewriteRule ^_media/(.*)                             lib/exe/fetch.php?media=$1    [QSA,L]
        RewriteRule ^_detail/(.*)                            lib/exe/detail.php?media=$1   [QSA,L]
        RewriteRule ^_export/([^/]+)/(.*)                    doku.php?do=export_$1&id=$2   [QSA,L]
        RewriteRule ^_style/([^/]+)/([^/]+)/style\.css       lib/exe/css.php?t=$2&tseed=$1 [QSA,L]
        RewriteRule ^_js/([^/]+)/js\.js                      lib/exe/js.php?tseed=$1       [QSA,L]
        RewriteRule ^$                                       doku.php                      [L]
 
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule (.*)                                     doku.php?id=$1               [QSA,L]
        RewriteRule ^index.php$                              doku.php

Und der Apache neu gestartet:

merkur:~# apache2ctl restart

Dokuwiki

Und zum Schluss wird Dokuwiki in der Datei local.php mitgeteilt, dass die URLs vom Webserver umgeschrieben und Schrägstriche als Namensraumtrenner verwendet werden:

$conf['userewrite']  = 1;
$conf['useslash'] = 1;
dokuwiki/urlrewrite.txt · Zuletzt geändert: 2014/09/13 19:12 (Externe Bearbeitung)

Seiten-Werkzeuge