Réponses aux questions : Qu'est ce que le fichier .htaccess ? Emplacement d'un fichier .htaccess - A quoi sert un fichier .htaccess ? Créer, utiliser, mettre en ligne le .htaccess - Créer une redirection 301
Le fichier htaccess de Joomla, la sécurité de votre site mais pas que ...
1. Sylvie CECI | https://sylvie-ceci.info/ et http://wwwblog-one.fr/
1
Le fichier htaccess de Joomla, la sécurité de votre
site mais pas que ...
…………………………………………………………….………………………………
1-Qu'est-ce que le fichier .htaccess ?
Dans cet article nous allons nous intéresser au fichier .htaccess.
Ce type de fichier sert à indiquer des commandes aux serveurs HTTP Apache comme nous l'indique la
page Wikipédia consacrée aux fichiers htaccess.
2-Emplacement du fichier .htaccess
L'emplacement de ce type de fichier est particulier.
Le fichier est installé dans un répertoire de données et agit sur ce répertoire et sur tous les sous-
répertoires que ce dernier peut contenir.
On peut placer d'autres fichiers .htaccess dans les sous répertoires. Quand le fichier .htaccess est placé
dans un répertoire, il est détecté et exécuté par le serveur Apache.
Les sites Joomla sont protégés par un fichier .htaccess placé à la racine du site mais les répertoires
contenant les Templates en contiennent un aussi.
3-A quoi sert le fichier .htaccess ?
Les fichiers .htaccess sont utilisés pour :
A- Configurer les droits d'accès
B- Configurer des redirections d'URL et éviter les erreurs 404
C- Ecrire des messages d'erreurs personnalisés
D- Réécrire les URL pour les simplifier
E- Protéger le contenu d'un répertoire par mot de passe ...
4-Créer, utiliser, mettre en ligne le .htaccess
.htaccess est le nom du fichier dans son intégralité, il n'a pas d'extension. On peut créer le fichier à
partir de n'importe quel éditeur de texte.
A- On crée alors un fichier htaccess.txt.
B- On saisit le code dans le fichier.
C- Puis on télécharge le fichier sur le serveur dans un répertoire. On utilise pour cela le logiciel
Filezilla.
D- Une fois le fichier téléchargé par FTP, on le renomme en .htaccess.
2. Sylvie CECI | https://sylvie-ceci.info/ et http://wwwblog-one.fr/
2
5-Concernant le fichier .htaccess installé à la racine de
joomla :
A la racine des fichiers Joomla se trouve déjà un fichier htaccess.txt. Il faut tout simplement renommer
le fichier directement en .htaccess, dans le clientFTP.
L'opération est simple à effectuer : dans Filezilla, il faut se connecter au serveur du site, puis à la racine
du site Joomla, cliquer droit sur le fichier htaccess.txt et le renomme en .htaccess. Le chmod de ce
fichier est 444.
Créer une redirection 301
La redirection 301 est une redirection permanente. Son principe est simple la redirection 301 redirige
l'internaute vers une nouvelle URL. Par exemple on souhaite que, lorsque l'internaute saisisse dans la
barre d'adresse de Google www.monsite.com qu'il aboutisse sur www.monsite.net. Les redirections
301, la plus part du temps visent à changer le nom de domaine d'un site, orienter une page vers une
autre page ou gérer les différentes syntaxes d'une URL.
Avec ce type de redirection, l'utilisateur n'aboutit pas sur une page 404, le site conserve son
positionnement dans Google.
Quelques redirections que l'on peut mettre en place :
1. Rediriger un nom de domaine vers un autre nom de domaine
www.monanciensiteweb.fr vers www.nouveausiteweb.fr
Solution dans le fichier .htaccess de www.monanciensiteweb.fr :
RewriteEngine on
RewriteRule (.*) http://wwwnouveausiteweb.fr/$1 [R=301,L]
2. Rediriger les anciennes pages vers les nouvelles pages
www.monsiteweb.fr/ancienne-url vers www.monsiteweb.fr/nouvelle-url
Solution dans le fichier .htaccess :
RewriteCond %{HTTP_HOST} ^www.monsiteweb.fr/ancienne-url
RewriteRule ^(.*) http://www.monsiteweb.fr/nouvelle-url [QSA,L,R=301]
3. Rediriger le contenu d'un ancien dossier vers le nouveau dossier
www.monsiteweb.fr/ancien-dossier (et toutes les pages qu'il contient)
vers www.monsiteweb.fr/nouvelle-url
Solution dans le fichier .htaccess :
3. Sylvie CECI | https://sylvie-ceci.info/ et http://wwwblog-one.fr/
3
RedirectMatch 301 ^/ancien-dossier.* http://www.monsite.com/nouvelle-url
4. Rediriger le site sans www. vers le site avec www :
monsiteweb.fr vers www.monsiteweb.fr
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.monsiteweb.com [NC]
RewriteRule (.*) http://www.monsiteweb.com/$1 [QSA,R=301,L]
5. Rediriger les pages index.html , index.php.... vers la racine de site
RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD) (/.*)?/index.(htm|html|php|asp|shtml)
RewriteRule ^(.*)index.(htm|html|php|asp|shtml)$ /$1 [R=301,L]
6. Rediriger une ancien page vers une nouvelle page
RewriteEngine On
RewriteRule ancienpage.html http://www.monsiteweb/nouvelle-page.html [R=301]
Sécurisation du fichier .htaccess (et configuration.php)
Ce code est à placer en début de de .htaccess en-dessous de "## Mod_rewrite in use"
RewriteEngine On
<Files .htaccess>
order allow,deny
deny from all
</Files>
<Files configuration.php>
order allow,deny
deny from all</Files>
La documentation complète Apache :
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteflags
https://httpd.apache.org/docs/trunk/fr/rewrite/intro.html