DokuWiki URL rewriting in LightTPD

I’ve finally decided to setup DokuWiki as a personnal wiki, as it handles 2 of my first needs: namespaces and ACLs by namespaces.

Here are the options you need to set up to get clean URL rewriting in LightTPD.

In conf/dokuwiki.conf:

 $conf['userewrite']  = 1;        //this makes nice URLs: 0: off 1: .htaccess 2: internal  $conf['useslash']    = 1;        //use slash instead of colon? only when rewrite is on

The second line is optional, but I feel better handling namespaces pages with / – as subdirectories – instead of colons.

Actually, you can set option 2 (internal) for the userewrite parameter. Yet, URLs would be like “wiki/doku.php/mypage”, and I’d prefer something like “wiki/mypage”. In such a case (option 1), you need to set the following rules in lighttpd.conf:

 "^/wiki/?$" => "/wiki/doku.php",  "^/wiki/lib/(.*)/?$" => "/wiki/lib/$1",  "^/wiki/(.*)?do=(.*)/?$" => "/wiki/doku.php?id=$1&do=$2",  "^/wiki/(.*)/?$" => "/wiki/doku.php?id=$1

Dotclear, URL rewriting et LightTPD

Quelques jours après son passage sur un serveur LightTPD, je viens d’activer la redirection d’URL sur ce blog pour obtenir des adresses du type http://apassant.net/blog/2006/01 à la place de http://apassant.net/blog/index.php/2006/01.

La réécriture est aussi simple que sous Apache, par contre il n’est pas encore possible d’utiliser des fichiers locaux à la .htaccess pour définir les règles, il faut donc les écrire dans le fichier de configuration du serveur. Par super pratique en cas de renommage d’un répertoire, meme si on s’en sort avec un petit coup de sed.

Voilà donc les règles utilisées pour passer d’un dotclear classique en PATH_INFO à ce type d’URL sous LightTPD. Si vous êtes sous Apache, vous pouvez consulter ce tutoriel. Dans le cas des redirections de ce site, la seule chose à changer est l’URL du blog dans l’interface de configuration (i.e. ici, rempacer /blog/index.php par /blog/):

 url.rewrite = (   # permaliens   "^/blog/[0-9]{4}/[0-9]{2}/?$" => "/blog/index.php/$1/$2",   "^/blog/[0-9]{4}/[0-9]{2}/[0-9]{2}/?$"     => "/blog/index.php/$1/$2/$3",   "^/blog/[0-9]{4}/[0-9]{2}/[0-9]{2}/(.+)$"     => "/blog/index.php/$1/$2/$3/$4",   # categories   "^/blog/([A-Z][A-Za-z0-9_-]*)/?$" => "/blog/index.php/$1",   "^/blog/([A-Z][A-Za-z0-9_-]*)/[0-9]{4}/?$"     => "/blog/index.php/$1/$2",   "^/blog/([A-Z][A-Za-z0-9_-]*)/[0-9]{4}/[0-9]{2}/?$"     => "/blog/index.php/$1/$2/$3",   "^/blog/([A-Z][A-Za-z0-9_-]*)/[0-9]{4}/[0-9]{2}/[0-9]{2}/?$"     => "/blog/index.php/$1/$2/$3/$4",   # langues   "^/blog/([a-z]{2}(-[a-z]{2})?)$" => "blog/index.php/lang=$1",   # admin   "^/blog/ecrire/(.+)?$" => "blog/ecrire/$1",   # tags   "^/blog/tag/(.+)?$" => "blog/index.php/tag/$1", )

Ca tourne correctement, même si pour le moment je n’ai pas réussi à garder la compatibilité avec les anciens permaliens :-/ Par contre j’ai toujours ce bug étrange avec le tagcloud.

Bref, on verra plus tard, on passe à autre chose pour ce soir. (dormir en fait je crois :-)

MIgration sous LightTPD

En prévison de futurs services, ce blog vient de migrer de l’APINC vers un serveur dedié tournant sous debian avec LightTPD, en remplacement de Apache. Installation rapide et sans trop de soucis, que ça soit pour l’utilisation de PHP5 avec FastCGI ou la configuration des VirtualHost:

$HTTP["host"] =~ "(.+.)?apassant.net" {   server.document-root = "/var/www/apassant.net/" }

Prochaines étapes pour ce blog, un nouveau thème et le plugin SIOC qui traine dans les cartons depuis quelques temps…