Informations et utilisations du fichier .htaccess

Informations et utilisations du fichier .htaccess

1.- Qu'est-ce qu'un fichier .htaccess ?
Le fichier .htaccess (hypertext access) est le nom par défaut du fichier de configuration au niveau des répertoires d'Apache. Il est utilisé pour personnaliser la configuration des directives et des paramètres définis dans le fichier de configuration principal de l'hébergement.
 
2.- Comment créer et où placer un fichier .htaccess ?
Pour créer un fichier .htaccess, ouvrez un éditeur de texte et saisissez le code requis. Enregistrez le fichier en tant que fichier texte (.txt), par exemple "htaccess_file.txt", et téléchargez-le via FTP dans le dossier où il doit être utilisé. Une fois sur le serveur, renommez le fichier de "htaccess_file.txt" en ".htaccess".
 
Important : si vous avez déjà un fichier .htaccess dans votre hébergement, vous pouvez l'utiliser pour appliquer ces configurations. Si vous avez récemment effectué une migration de domaine, vous devrez peut-être également apporter des modifications.
 
Le fichier .htaccess doit être placé à l'intérieur du dossier où vous souhaitez qu'il prenne effet. Par exemple, si vous souhaitez protéger par mot de passe un dossier appelé "private", placez le fichier .htaccess à l'intérieur du dossier "private".
Le fichier .htaccess a une grande variété d'utilisations et d'utilitaires qui peuvent être très utiles sur un site web. Dans le tutoriel suivant, nous montrons quelques-unes des fonctions les plus couramment utilisées.
 
3.- Utilitaires courants du .htaccess
Le fichier .htaccess possède un grand nombre d'utilitaires. Dans ce tutoriel, nous montrons quelques-uns des plus courants et comment les configurer :
 
 
Rediriger un sous-domaine vers un sous-dossier
Dans certaines situations, vous pouvez avoir besoin de créer une redirection vers le dossier d'un sous-domaine en utilisant .htaccess. Si vous souhaitez que le sous-domaine "test.exemple.org", par exemple, pointe vers le dossier "exemple.org/test", vous devez ajouter les directives suivantes au fichier .htaccess :
 
RewriteEngine on
RewriteCond %{HTTP_HOST} ^test.exemple.com$
RewriteCond %{REQUEST_URI} !^/test/
RewriteRule (.*) /test/$1
 
La première ligne active le moteur de réécriture et ne doit être spécifiée que s'il n'a pas été activé précédemment.
Les troisième et quatrième lignes effectuent la redirection.
La deuxième ligne empêche la redirection de s'appliquer à nouveau si la requête se trouve déjà dans le dossier "test". Ceci est nécessaire pour éviter les erreurs et les boucles, car le fichier .htaccess est exécuté à nouveau lors de la redirection de la requête vers le dossier "test".
 
Rediriger un site web en utilisant des redirections 301, 302
Si, lors de l'accès au site web, vous souhaitez rediriger la page vers une autre :
 
RewriteEngine On
RewriteRule ^(.*)$ http://www.sitearediriger.com/$1 [R=301,L]
 
(Dans "R=301", vous pouvez spécifier la méthode de redirection souhaitée : 301, 302, etc.)
 
Rediriger un site web vers un sous-dossier
Si votre site web se trouve dans un sous-dossier différent du dossier "web", vous pouvez rediriger toutes les requêtes vers ce sous-dossier :
 
RewriteEngine on
RewriteCond %{HTTP_HOST} ^exemple\.org$
RewriteRule (.*) http://www.exemple.org/$1 [R=301,L]
RewriteRule ^$ dossier [L]
 
Où :
exemple\.org pourrait être, par exemple, cdmon.com.
Le dossier pourrait être, par exemple, "wordpress".
 
Contrôle d'accès au site
Vous pouvez configurer l'accès afin que, si pour une raison quelconque vous souhaitez refuser l'accès à tous les utilisateurs ou n'autoriser l'accès qu'à un groupe spécifique d'adresses IP, vous puissiez le faire.
  • Autoriser l'accès à votre site uniquement depuis des IP spécifiques :
 
ErrorDocument 403 http://www.exemple.org
Require all denied
Require ip 124.34.48.165
Require ip 102.54.68.123
 
Les IP 124.34.48.165 et 102.54.68.123 sont les IP qui auront accès au site web.
 
  • Refuser l'accès au site uniquement pour des IP spécifiques :
 
Require all granted
Require not ip 145.186.14.122
Require not ip 124.15
 
L'IP 145.186.14.122 et le réseau 124.15.x.x n'auront pas accès au site web.
 
Contrôle d'accès aux dossiers
Une utilisation très courante du .htaccess est de restreindre l'accès à certains dossiers. Vous pouvez souhaiter désactiver complètement l'accès à un dossier, par exemple un dossier contenant des bibliothèques de programmation qui sont incluses dans les fichiers principaux. Dans ce cas, seuls les fichiers principaux pourront y accéder via le système de fichiers, mais ils ne seront pas accessibles via le web. Il suffit de créer un fichier .htaccess dans ce dossier contenant le code suivant :
  • Bloquer ou désactiver complètement l'accès à un dossier :
 
#refuser tout accès
Require all denied
 
  • Autoriser l'accès depuis une IP spécifique :
 
#refuser tout accès
Require all denied
Require ip 212.267.98.14
 
  • Autoriser l'accès depuis une plage d'IP spécifique (forcée à l'aide d'un masque de réseau) :
 
Require ip 192.168.0.0/24
 
  • Bloquer l'accès à un fichier spécifique :
 
Require all denied
 
Liste des répertoires
Vous pouvez également utiliser .htaccess pour afficher le contenu d'un dossier sous forme de liste de répertoires.
 
Options +Indexes
 
  • Liste des répertoires, mais sans afficher les icônes par défaut :
 
Options +Indexes
IndexOptions -FancyIndexing
 
  • Vous pouvez également souhaiter désactiver la liste des répertoires :
 
IndexIgnore*
 
Rediriger les requêtes de www.exemple.org vers exemple.org et vice versa
Si vous souhaitez que votre site web soit toujours affiché sans www, ajoutez le code suivant au fichier .htaccess :
 
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(robots\.txt|favicon\.ico|sitemap\.xml)$
RewriteCond %{HTTP_HOST} !^exemple\.org$ [NC]
RewriteRule ^(.*)$ http://exemple.org/$1 [R=301,L]
 
Inversement, pour toujours afficher le site web avec www :
 
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(robots\.txt|favicon\.ico|sitemap\.xml)$
RewriteCond %{HTTP_HOST} !^www\.exemple\.org$ [NC]
RewriteRule ^(.*)$ http://www.exemple.org/$1 [R=301,L]
 
Où :
exemple.org pourrait être, par exemple, cdmon.com
 
Redirection de site web optimisée pour le référencement
Si vous avez transféré des noms de domaine ou si vous souhaitez rediriger vers une page spécifique sans affecter les résultats des moteurs de recherche comme Google, vous pouvez utiliser le code suivant :
 
Redirect 301 /d/filename.html http://www.exemple.org
 
Rediriger le trafic web
Si vous souhaitez que lorsqu'une personne essaie d'accéder à un fichier spécifique, elle soit redirigée vers un autre fichier, vous pouvez utiliser la directive "redirect" :
 
 
Rediriger vers une connexion HTTPS sécurisée
Si vous souhaitez rediriger l'ensemble de votre site vers une connexion sécurisée (HTTPS), cela est très utile si, par exemple, vous disposez d'un certificat SSL et souhaitez l'utiliser.
 
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
 
 
Rediriger les utilisateurs vers HTTPS pour un dossier spécifique
Si vous souhaitez rediriger uniquement un dossier spécifique vers une connexion sécurisée (HTTPS) au lieu de tout le site — par exemple, si vous avez une boutique dans un dossier séparé — vous devez utiliser le code suivant :
 
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} nom_dossier
RewriteRule ^(.*)$ https://www.exemple.org/$1 [R,L]
 
Empêcher le hotlinking
Le hotlinking consiste à créer des liens directs vers des fichiers — généralement des images et des vidéos — qui appartiennent à un autre site web. Cette pratique consomme la bande passante du site d'origine qui héberge l'image. Pour empêcher d'autres sites de "voler" votre bande passante, vous pouvez configurer .htaccess pour bloquer le hotlinking.
 
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?exemple\.org/.*$ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png)$ [L]
 
La dernière ligne est utilisée pour indiquer quels types de contenu (en fonction des extensions de fichiers) vous ne souhaitez pas autoriser en hotlinking :
 
RewriteRule .*\.(jpe?g|gif|bmp|png)$ [L]
 
Alternativement, vous pouvez utiliser cette autre règle, qui affiche également une image d'avertissement ("no_steal_bandwidth.gif", que vous devez avoir créée au préalable) pour indiquer que l'image est chargée depuis votre site web.
 
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/IMG/no_steal_bandwidth.gif$
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?exemple\.org/.*$ [NC]
RewriteRule .*(gif|jpe?g|png|bmp)$ http://exemple.org/IMG/no_steal_bandwidth.gif [NC,R,L]
 
Dans la dernière ligne, spécifiez les extensions de fichiers que vous souhaitez bloquer en hotlinking et indiquez l'image d'avertissement que vous souhaitez afficher.
 
Changer la page par défaut
Vous pouvez faire en sorte que la page d'index par défaut de votre site soit autre chose que le célèbre "index". Ici, "about.html" est défini comme page d'accueil :
 
#Utiliser une page d'index par défaut alternative
DirectoryIndex about.html
  
Forcer la mise en cache du site
Le code suivant n'augmente pas directement la vitesse de chargement globale du site, mais il permet de charger plus rapidement lorsque le même utilisateur revient en envoyant un statut 304 pour les éléments qui n'ont pas été modifiés. Vous pouvez modifier la fréquence de mise en cache en modifiant le nombre de secondes (dans cet exemple, il est réglé sur une fois par jour) :

FileETag MTime Size
ExpiresActive on
ExpiresDefault "access plus 86400 seconds"
 
Améliorer la compatibilité des caractères
Cette option s'adresse à ceux qui n'utilisent pas un jeu de caractères standard reconnu par le serveur. Avec ce paramètre, la célèbre erreur 500 est évitée.

AddDefaultCharset utf-8
 
Créer des URL optimisées pour le référencement
Une URL optimisée pour le référencement consiste à masquer une URL pleine de paramètres pour la rendre plus propre et plus élégante, et pour aider à obtenir un meilleur classement dans les moteurs de recherche. Selon la façon dont le site web est programmé, le code à utiliser variera.
 
Exemple 1 :
Par exemple, "dossier/fichier.php?id=120&langue=fr" n'est pas une URL optimisée pour le référencement, elle doit donc être transformée en "dossier/fichier/120/fr", ce qui est plus élégant et aide au positionnement dans les moteurs de recherche. C'est une URL optimisée pour le référencement. Avec le fichier .htaccess, vous pouvez effectuer ce "masquage" de l'URL.
 
Vous avez un dossier sur votre site web qui contient un fichier qui reçoit des paramètres.
 
exemple.org/dossier/fichier.php?id=25
 
Ensuite, à l'intérieur de ce dossier, vous devez créer un fichier .htaccess avec le code suivant :
 
Options +FollowSymLinks
RewriteEngine on
RewriteRule dossier/(.*)/(.*).php$ /dossier/fichier.php?id=$1
 
La dernière ligne est celle où le changement est effectué.
(.*) sera le paramètre que vous passez, $1.
(.*).php$ sera le nom du fichier utilisé pour "décorer" l'URL.
 
Une fois le fichier .htaccess créé, dans le lien de votre site web, vous devez utiliser :
 
Lien vers le fichier 25
 
Par conséquent, "dossier/25/nom-fichier.php" sera identique à "/dossier/fichier.php?id=25".
 
Exemple 2 :
Si votre site web utilise une URL telle que "http://www.exemple.org/index.php?parametre=blog", vous pouvez la convertir en "http://www.exemple.org/blog".

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ /index.php?parametre=$1 [QSA,L]

Exemple 3 :
Un autre exemple de conversion vers des URL optimisées pour le référencement.
 
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)/page-([0-9]+)$ /index.php?parametre=$1&paginator=$1 [QSA,L]

Exemple 4 :
Code utilisé par WordPress pour créer des URL optimisées pour le référencement.
 
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
 

Pour plus d'informations, vous pouvez nous contacter.
    • Related Articles

    • Fichier .htaccess par défaut de PrestaShop

      Le fichier .htaccess est un fichier de configuration utilisé sur les serveurs web Apache. Il est utilisé pour contrôler et configurer le comportement d'un site web. Le fichier .htaccess a de multiples fonctions et permet de personnaliser la ...
    • Comment protéger des dossiers à l'aide d'un fichier .htaccess

      Grâce au fichier .htaccess, vous pouvez protéger n'importe quel répertoire de votre compte d'hébergement. 1.- Comment créer et où placer un fichier .htaccess et .htpasswd Pour créer un fichier .htaccess ou .htpasswd, ouvrez le Bloc-notes et saisissez ...
    • Où consulter les informations du serveur

      Depuis le Panneau de contrôle cdmon, vous avez la possibilité de consulter les informations relatives au serveur où se trouve votre hébergement, telles que l'adresse IP et les versions des logiciels. Pour consulter ces informations, vous devez ...
    • Optimisation du cache pour Joomla

      Joomla est un système de gestion de contenu populaire qui nous permet de créer des sites web dynamiques facilement. L'une de ses caractéristiques particulières est la possibilité d'ajouter de nouvelles fonctionnalités via des extensions telles que ...
    • Comment créer une copie compressée de votre site web et la télécharger

      Depuis le panneau de contrôle, vous pouvez lancer une compression de l'intégralité de votre site web afin de pouvoir le télécharger ultérieurement ou le conserver comme copie de sauvegarde à une date précise. Pour ce faire, accédez à votre panneau de ...