Attention, les fichiers .htaccess
sont des fichiers système utilisés dans la configuration et le fonctionnement du serveur Web (apache et compatible) pour le traitement des dossiers/répertoires en dépendant ; toute modification erronée peut bloquer votre serveur en erreurs 500 [1] !
Précisons aussi que, pour protéger des répertoires sensibles, SPIP met automatiquement en place plusieurs fichiers .htaccess
simples pour interdire l’accès aux zones sensibles :
typiquement sur ./config
et ./tmp
(voir ci-dessous), qui ne sont pas à modifier.
Quand on parle du .htaccess
, les spipeurs veulent en général cibler le fichier .htaccess principal, selon le modèle mis en place à la racine de votre site, qui vous est proposé par SPIP sous le nom htaccess.txt
.
Il vous appartient de choisir d’activer, en le renommant par FTP [2] par les deux manipulations suivantes sous FTP (FileZilla, ou TC..) :
- il faut RETIRER le .txt du fichier htaccess
- il faut METTRE un POINT AVANT htaccess
- il faut VERIFIER la place de ce fichier A LA RACINE de votre espace (à coté de spip.php )
Sauf dans le cas Free / Online (voir Des cas..... résolus ! PHP5), le fichier modèle proposé par SPIP est généralement totalement accepté, mais attention : une instruction incorrecte bloquera votre site, donc soyez prêts à le désactiver....
Nota Bene : si votre site est placé dans un sous-dossier du DocumentRoot d’Apache, il est possible que vous deviez paramétrer explicitement la ligne RewriteBase
avec le chemin relatif d’accès à la racine de votre site [3]
La nouvelle version 3.1 de SPIP proposera un calcul automatique de ce paramètre :
# Calcule automatiquememt le RewriteBase (qui permet de faire fonctionner
# les belles URLs). De la sorte, un meme site peut etre affiche en racine
# ou dans un sous repertoire sans devoir modifier la ligne RewriteBase.
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
# En alternative aux 2 lignes precedentes (a commenter dans ce cas),
# vous pouvez indiquer un RewriteBase specifique
#RewriteBase /
Vous pourrez y rajouter de nombreuses modifications éventuelles décrites plus bas ou en Des cas..... résolus ! PHP5 : mais votre attention est attirée sur la sensibilité et l’importance de ce fichier de configuration d’Apache (et d’autres serveurs Web), qui rend difficile de le tester sur une installation locale hors du contexte d’exploitation réelle.
Le principe des protections d’accès
Le controle d’accès utilise deux directives pour spécifier les accès d’utilisateurs (définis par un couple login/password, ou des adresses IP) autorisés (allow
) ou interdits deny
).
En application directe de ces principes, pour protéger votre installation, SPIP met en place un blocage interdisant la visualisation de fichiers sensibles, en particulier les fichiers définissant les accès à la base de données : les fichiers du répertoire ./config
.
Ainsi, interdire tout accès web à un répertoire (de configuration, ou de sauvegarde...) se fait en déposant dans ce répertoire un fichier texte nommé .htaccess
[4] contenant simplement le texte :
deny from all
.
L’usage particulier au paramétrage de SPIP
Le fichier .htaccess
optionnel que vous pourrez créer dans le dossier principal de SPIP peut avoir deux usages bien spécifiques, rendus indispensables par certains hébergements ou fonctionnements :
définition du PHP : voir Des cas..... résolus ! PHP5
génération des règles de ré-écriture d’URL : ci-dessous
En regle générale, on peut avoir à rajouter quelques instructions : elles seront insérées dans la zone de personnalisation en début du fichier "modèle" fourni par SPIP, par exemple :
################ REGLAGES PERSONNALISES ######################
# Inscrivez ci-dessous vos reglages supplementaires
SetEnv PHP_VER 5_4
SetEnv REGISTER_GLOBALS 0
################ GESTIONS DES URLS SPIP #######################
URL rewriting "en dur"
Plusieurs solutions co-existent pour l’URL-rewriting, en clair, Ré-écrire les URL à la volée sous une forme sémantiquement plus [5] significative pour les lecteurs humains ou robotisés...
Si vous n’activez pas le fichier .htaccess, vous pouvez néanmoins utiliser une lame du Couteau Suisse pour simuler ce comportement, avec la lame d’administration Belles URL.
un simple test pour valider le fonctionnement de principe de .htaccess
:
dans ce cas, il pourrait être intéressant de remplacer le fichier actuel par un fichier minimaliste ne contenant qu’une instruction pour voir si elle est exécutée ou non.
Par exemple, créer un squelette test.html
, et tenter d’y accéder par l’URL www.stite.ext/essai.html
:
RewriteEngine On
RewriteBase /
RewriteRule ^essai(\.html)?$ spip.php?page=test [QSA,L]
Si ça marche, le problème se situe dans le htaccess d’origine. Si ça ne marche pas le problème est à chercher du coté de l’hébergeur ou des réglages de l’hébergement ;
en particulier, le réglage standard de votre WampServer n’active pas la fonctionnalité du rewrite_module
.... ne cherchez pas ailleurs sur une erreur 500 !
Et quand il n’y a pas .htaccess
Si votre dossier de site SPIP ne comporte pas le fichier .htaccess
[6], vous risquez de rencontrer des comportements "surprenants" !
Le premier symptôme : vous ne pouvez pas appeler un article [7] par son URL réduite, comme ici https://www.spippourlesnuls.fr/300 qui vous affiche l’article avec une URL complète La structure de base de données de SPIP 3 ; seule fonctionnera l’URL cannonique 300.
Article publié le 21 janvier 2013, et actualisé en janvier 2022 .
Répondre à cet article