Le fichier htaccess

Le fichier .htaccess est un fichier texte qui permet de modifier certains paramètres du serveur apache. Ces modifications sont valables pour le dossier dans lequel le fichier se trouve ainsi que ses sous-dossiers.

On utilise ce fichier principalement pour :

  • Contrôler l'accès à un répertoire ou un fichier par mot de passe.

  • Gérer le type mime des fichiers.

  • Définir des pages d'erreurs personnalisées.

  • Réécrire les URL.

Attention

.htaccess étant un fichier de configuration du serveur apache, votre site doit donc naturellement être hébergé par un serveur apache.

Notez bien que ce fichier n'a pas de nom, mais seulement une extension. Certains éditeurs ou explorateurs ne permettent pas d'afficher ce fichier.

MéthodeActiver la réécriture d'URL

Pour utiliser la réécriture, votre hébergeur doit vous le permettre. Tous les hébergeurs ne l'autorisent pas.

En local, pour activer la réécriture d'URL, vous devez avoir les droits d'administrateur.

Dans le fichier httpd.conf dé-commentez la ligne :

1
LoadModule rewrite_module modules/mod_rewrite.so

Si vous utilisez WampServer : Apache->Modules Apache->rewrite_module

Dans la suite, nous montrons seulement les instructions du fichier htaccess qui permettent la réécriture des adresses en index.php

DéfinitionRewriteEngine

Avant de commencer, il faut autoriser la réécriture d'URL.

1
RewriteEngine On

DéfinitionRewriteRule

1
RewriteEngine On
2
RewriteRule URL_à_réécrire URL_réécrite

URL_à_réécrire : vous pouvez écrire le type de vos URL à réécrire sous forme d'expression régulière.

URL_réécrite : pour réécrire l'URL vous pouvez utiliser les groupes obtenus à partir de l'expression régulière.

1
RewriteEngine On
2
RewriteRule monNouveauNom original.php

réécrit l'URL monNouveauNom en original.php

Le client pense appeler monNouveauNom et c'est le fichier original.php qui lui est retourné.

Méthode

Afin de rediriger toutes les requêtes vers le fichier index.php

1
RewriteEngine On
2
RewriteRule . index.php

. : n'importe quelle url d'au moins un caractère

Afin de récupérer certains fichiers sans passer par index.php, il faut les exclure de la redirection.

1
RewriteEngine On
2
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

!\.(js|ico|gif|jpg|png|css)$ : ne finit pas par un point suivi de js, ou ico, ou gif ...

ConseilAdresses utiles

Pour plus d'informations sur le fichier .htaccess vous pouvez consulter les adresses suivantes :

http://httpd.apache.org/docs/2.2/fr/howto/htaccess.html