date: 02 Aug 2010 title: Url rewriting pour StatusNet sous Lighttpd tags: lighttpd, planet-evolix, planet-libre, statusnet, url rewriting categories: Configuration d'un home serveur, GNU-Linux et Logiciels Libres

Tout récemment, j'ai installé sur mon serveur StatusNet, le moteur de microblogging libre, utilisé notamment par Identi.ca. Dans l'ensemble, l'installation est bien documentée dans le README. Un fichier htaccess d'exemple est présent contenant les règles de réécriture d'URL. Si vous utilisez Apache, pas de problème, renommez le fichier en .htaccess et c'est parti. Seulement, si on utilise un autre serveur web, il faudra adapter ces règles à la syntaxe de son serveur. Voici comment faire avec Lighttpd.

Fichiers de configuration

Un petit rappel du contenu du htaccess de StatusNet :

                                                                                                           
  RewriteEngine On

  # NOTE: change this to your actual StatusNet base URL path,
  # minus the domain part:
  #
  #   http://example.com/        => /
  #   http://example.com/mublog/ => /mublog/
  #
  RewriteBase /mublog/

  ## Uncomment these if having trouble with API authentication
  ## when PHP is running in CGI or FastCGI mode.
  #
  #RewriteCond %{HTTP:Authorization} ^(.*)
  #RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

  RewriteCond %{REQUEST_FILENAME} !-f 
  RewriteCond %{REQUEST_FILENAME} !-d 
  RewriteRule (.*) index.php?p=$1 [L,QSA]

Et voici son adaptation à la sauce lighty :

# Si mod_rewrite n'est pas activé, on l'active
server.modules += ( "mod_rewrite" )
# Équivalent de RewriteBase
base_url = "/" 
# La règle de redirection
url.rewrite-if-not-file = ( "^" + base_url + "(\w+)" => base_url + "index.php/$1" )
C'est plutôt… court :D

Explications

Liens utiles

[1] Apache mod_rewrite [2] Adaptation des règles de rewrite Apache -> Lighttpd [3] Lighttpd mod_rewrite