SPIP et hiawatha

Utiliser SPIP avec le serveur web hiawatha

Hiawatha est un serveur web très simple. Afin de pouvoir utiliser le CMS SPIP avec ce serveur en utilisant les "url_propres" il est nécessaire d’effectuer quelques ré-écritures.

L’URI est transformé en variable d’environnement avec Apache, dans notre cas nous allons la passer dans les paramètres puis créer la variable dans SPIP avec la fonction putenv.

Tous les cas ne sont probablement pas traités, cette configuration s’est avérée suffisante pour l’usage souhaité et peut contenir des indications pour compléter la solution ou en trouver une autre !

Précaution

Il peut être nécessaire d’autoriser PHP à écrire une variable d’environnement si le safe-mode est activé. Le fichier à modifier est celui de configuration

/usr/local/etc/php.conf
. Créer ou modifier la ligne suivante pour préciser les préfixes des variables modifiables.
safe_mode_allowed_env_vars=url_propre
Il est possible de préciser plusieurs préfixes séparés par des ’,’.

Modification de SPIP

Dans le répertoire de SPIP modifier le fichier

spip.php
en ajoutant
if (isset($_GET['url_propre'])) {
       $utemp = str_replace("?","&",$_GET['url_propre']);
       putenv ("url_propre=".$utemp);
}
avant l’inclusion du fichier public.php

Configuration de HIAWATHA

Le fichier à modifier est

/usr/local/etc/hiawatha/httpd.conf

Définir une règle de ré-écriture :

UrlRewrite {
       RewriteId = spip
       RequestURI isfile Exit
       RequestURI isdir Exit
       Match ^(/\+-[^/\.]+-\+\.html.*)$ Rewrite /spip.php?page=mot&url_propre=$1
       Match ^(/\+[^/\.]+\+?\.html.*)$ Rewrite /spip.php?page=breve&url_propre=$1
       Match ^(/-[^/\.]+-?\.html.*)$ Rewrite /spip.php?page=rubrique&url_propre=$1
       Match ^(/_[^/\.]+_?\.html.*)$ Rewrite /spip.php?page=auteur&url_propre=$1
       Match ^(/@[^/\.]+@?\.html.*)$ Rewrite /spip.php?page=site&url_propre=$1
       Match  ^(/[^/\.]+\.html.*)$ Rewrite /spip.php?page=article&url_propre=$1
}

et dans la définition du VirtualHost correspondant au site ajouter :

      StartFile = index.php
      RewriteURL = spip

Relancer hiawatha...