Lorsque vous installez le fichier htaccess.txt fourni dans la distribution de SPIP, il arrive parfois une page en erreur 404 lors de l’emploi de la réécriture des URLs. C’est le cas par exemple chez 1and1 lorsque le site se trouve dans un dossier. Ce fichier doit être corrigé pour fonctionner correctement.
Il faut rajouter :
RewriteBase /
dans votre fichier .htaccess. Ce qui donne, par exemple :
RewriteEngine On
AddType text/x-component .htc
RewriteBase /
RewriteRule ^(.*/)?\.svn/ - [F]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule "." - [skip=100]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule "." - [skip=100]
RewriteRule ^\+-[^/\.]+(-\+)?(\.html)?$ spip.php?page=mot [QSA,E=url_propre:$0,L]
RewriteRule ^\+[^/\.]+\+?(\.html)?$ spip.php?page=breve [QSA,E=url_propre:$0,L]
RewriteRule ^-[^/\.]+-?(\.html)?$ spip.php?page=rubrique [QSA,E=url_propre:$0,L]
RewriteRule ^_[^/\.]+_?(\.html)?$ spip.php?page=auteur [QSA,E=url_propre:$0,L]
RewriteRule ^@[^/\.]+@?(\.html)?$ spip.php?page=site [QSA,E=url_propre:$0,L]
RewriteRule ^[^/\.]+(\.html)?$ spip.php?page=article [QSA,E=url_propre:$0,L]Bien sûr, cela vaut uniquement si vous activez $type_urls sur le type d’URL souhaité.
Par défaut, $type_urls contient page.
Si vous ne souhaitez pas modifier le type d’URL, il vous suffit peut-être de rediriger les erreurs 404 (fichier ou dossier absent) par un .htaccess ne contenant que :
ErrorDocument 404 /spip.php?page=404
A voir :
— http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
— http://www.pyrat.net/Heberger-SPIP-sur-1and1-fr.html