Qu'est-ce qu'un fichier .htaccess ?
Le fichier .htaccess est un fichier de configuration Apache Serveur HTTP (normalement juste appelé Apache). Le fichier est extrêmement puissant et peut être utilisé pour aider à contrôler plusieurs facettes de pages Web qui sont servies par Apache. Cela inclut des éléments tels que la gestion des redirections, la protection des liens dynamiques, etc.
Où se trouve le fichier .htaccess ?
Il devrait y avoir un fichier .htaccess dans le dossier racine de votre hébergeur, le dossier (/public_html ou /www, d'habitude) qui dispose du contenu de votre site Web.
Vous pouvez en avoir plus d'un sur votre compte d'hébergement, mais chaque répertoire ou dossier ne peut en avoir qu'un seul. Par exemple, vous pouvez avoir des fichiers .htaccess dans votre dossier racine et un autre dans un sous-dossier. Cela vous permet de définir un comportement de serveur différent en fonction de la structure des répertoires.
Le fichier .htaccess est puissant mais peut être consulté et modifié s'il n'est pas correctement protégé. Assurez-vous de prendre des mesures pour empêcher l'accès à ce fichier.
Votre fichier .htaccess peut être masqué
Tout d'abord .htaccess est un fichier d'Apache, cela signifie que vous ne pouvez le trouver que dans un serveur Apache .* Arrêtez la recherche si votre hôte s'exécute sur un logiciel de serveur Web différent (c'est-à-dire Microsoft IIS ou NGINX).
Les noms de fichiers commençant par un point sont généralement des fichiers cachés. Cela signifie qu'ils ne sont généralement pas visibles par défaut.
Pour afficher ce fichier, activez simplement "Show Hidden Files" dans votre client FTP ou gestionnaire de fichiers d'hébergement (voir image ci-dessous).
Vous pouvez sentir que le fichier .htaccess est un inconvénient car il nécessite du Coding mais prenez en considération l'utilisateur qui doit établir le même comportement de serveur sur plusieurs sites. Tout ce que cette personne devra faire est de dupliquer le fichier .htaccess.
Les fichiers .htaccess sont des fichiers de configuration du serveur et puisqu'ils traitent directement du comportement, il n'est pas nécessaire d'exécuter quelque chose à chaque fois qu'une demande est faite. C'est donc beaucoup moins intensif en ressources que d'utiliser un plugin par exemple.
* Remarque: Apache a un taux de prise du marché d'environ 22.8% pour les millions de sites les plus performants d'après le rapport de Mai 3 de W2022Techs. Les marques d'hébergement les plus populaires mentionnées sur WHSR - A2 Hosting, BlueHost, GreenGeeks, Hostinger, InMotion Hosting sont alimentées par Apache.
Utilisation du fichier .htaccess - Exemples réels et échantillons de code
Bien qu'il y ait un point devant le nom de fichier, htaccess est le nom du fichier et le point n'en fait pas une extension. C'est précisément ce nom de fichier qu'Apache recherche quand il est exécuté. Tout ce qui se trouve à l'intérieur du fichier .htaccess définit les paramètres permettant à Apache d'activer ou désactiver des fonctions ou même exécuter des tâches spécifiques lorsque certaines conditions sont remplies.
Par exemple, sur la base des instructions contenues dans le fichier, Apache peut charger automatiquement des pages d'erreur personnalisées si les visiteurs de votre site Web recherchent une ressource qui n'existe pas. Chaque type d'erreur a son propre code et chacun d'entre eux peut être redirigé individuellement.
Il y a une énorme liste de ce qui peut être fait en utilisant le fichier .htaccess et je vais en partager quelques-unes avec vous.
1. Gérer les pages d'erreur personnalisées
Lorsqu'ils sont paramétrés par défaut, la plupart des logiciels de serveur Web envoient une page d'erreur très sombre à vos visiteurs. Si vous souhaitez afficher une page d'erreur plus conviviale (ou du moins présentable), vous devrez utiliser la gestion personnalisée des documents d'erreur dans votre fichier .htaccess.
Disons que vous avez conçu une page d'erreur 404 personnalisée nommée "404.html" et enregistrée dans un sous-dossier de votre répertoire Web appelé "error_pages". En utilisant la ligne de code suivante dans .htaccess, vous pouvez faire appel à cette page chaque fois qu'une erreur 404 est rencontrée par un visiteur;
ErrorDocument 404 /error_pages/404.html
Grâce à cette technique, vous pouvez enregistrer des copies personnalisées de chaque type d'erreur individuelle que vous souhaitez prendre en compte et les configurer pour qu'elles soient annoncées en incluant le code nécessaire dans votre fichier .htaccess. Les codes d'erreur plus couramment rencontrés sont:
- 400 - Mauvaise demande
- 403 - Interdit
- 404 - Fichier introuvable
- 500 - Erreur de serveur interne
- 503 Service Indisponible
2. Gérer les réaffectations
Il peut arriver que vous souhaitiez mettre en place une réaffectation générale afin de pouvoir diriger vos visiteurs vers des pages spécifiques sans qu'ils le sachent. Par exemple, si vous utilisiez HTTP à l'origine mais que vous avez depuis lors installé SSL et êtes passé à HTTPS, vous désirerez que tous vos utilisateurs utilisent la version HTTPS de votre site.
Dans ce cas, vous devez utiliser la règle de réécriture:
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]
Le code pour cela peut être modifié en fonction de vos besoins. Par exemple, si vous souhaitez rediriger des utilisateurs de votre ancien domaine vers un nouveau, alors vous utiliseriez:
RewriteEngine On RewriteCond %{HTTP_HOST} ^olddomain.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.olddomain.com [NC] RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301,NC]
Il existe de nombreuses variantes pour configurer des réaffectations. Les détails de la syntaxe de réécriture peuvent être trouvés dans la documentation d'Apache .
Une des choses les plus utiles que les réaffectations puissent faire pour vous est de vous aider à guider les moteurs de recherche vers les pages que vous avez déplacées. Normalement, les moteurs de recherche indexent les liens et s’ils ne trouvent pas les bonnes pages, ils supposeront que le contenu a disparu.
Lorsque vous les réorientez, vous pouvez facilement déplacer du contenu et permettre aux robots d'indexation Web de savoir où trouver le contenu qu'ils ont précédemment indexé. Pour ce faire, utilisez:
Redirect 301 /archive/ /past-entries/
La consigne 301 permet non seulement aux utilisateurs d'accéder à l'ancien contenu de manière transparente, mais sert également d'instruction aux robots d'exploration de sites Web leur indiquant que le contenu est déplacé de manière permanente. Cela les aide en leur permettant de réindexer rapidement les liens.
3. Augmenter la sécurité du site Web
Je trouve que beaucoup de nouveaux propriétaires de sites Web ont tendance à trop compter sur les outils externes pour augmenter la sécurité de leur site web. S'il est vrai qu'il existe une tonne d'excellentes applications, vous pouvez commencer par les bases de votre fichier .htaccess.
Répertoires de protection par mot de passe
Pour ce faire, vous aurez besoin de deux fichiers, .htaccess et .htpasswd. Le fichier .htpasswd inclut certains cryptages, alors utilisez un outil comme Htpasswd Generator pour créer le fichier. Le fichier .htaccess doit inclure ce code:
AuthType Basic AuthName "Password Protected Area" AuthUserFile /path/to/.htpasswd Require valid-user
Désactiver la navigation dans les répertoires
C'est l'une des méthodes les plus faciles à mettre en œuvre et ne nécessite que deux lignes de code à inclure dans votre fichier .htaccess:
# Disable directory browsing Options -Indexes
Bloquer des IP spécifiques
Pour empêcher des adresses IP individuelles de visiter votre site, ajoutez le code suivant à votre fichier .htaccess:
Deny from XXX.XXX.XXX.XXX
Remplacez XXX par les valeurs IP numériques. Certaines variantes de ce code peuvent également être utilisées pour bloquer une ou plusieurss séries d'adresses IP.
4. Protection Hotlink
On parle de "hotlinking" lorsque d'autres sites web créent des liens vers les images que vous hébergez. Ceci n'est pas souhaitable car ils utilisent à la fois votre espace et votre bande passante. Pour empêcher la création de liens d'image, ajoutez ce qui suit à votre fichier .htaccess:
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)example.com/.*$ [NC] RewriteRule \.(gif|jpg|jpeg|bmp)$ - [F]
La dernière ligne de ce code est l'endroit où vous indiquez les fichiers dont vous souhaitez empêcher les sites de créer des liens. Il s'agit essentiellement de demander à Apache de bloquer tous les liens vers ces fichiers ne provenant pas du nom de domaine http://www.example.com/.
Beaucoup de personnes qui font souvent du hotlinking ne consultent plus leurs publications. Par conséquent, si vous souhaitez vraiment les embarrasser, vous pouvez afficher un message personnalisé à l'intention des sites tentés par ce genre de pratique:
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)example.com/.*$ [NC] RewriteRule \.(gif|jpg)$ http://www.example.com/stopstealing.gif [R,L]
5. Protéger le fichier .htaccess
Vous vous rendez compte à présent à quel point le fichier .htaccess est un outil utile. Puisque vous en êtes venu à cette réalisation, il est temps que vous pensiez à protéger ce précieux fichier ! Si vous utilisez un fichier .htpasswd, vous voudrez probablement le protéger également et voici comment y remédier:
# protect .htaccess and .htpasswd <Files ~ "^.*\.([Hh][Tt])"> Order allow,deny Deny from all Satisfy all </Files>
Notez que sur la plupart des serveurs sécurisés, ces fichiers sont déjà protégés. Avant d'ajouter ce code, vérifiez si vous pouvez accéder aux fichiers dans une fenêtre de navigateur. Tapez simplement l'URL et ajoutez un /.htaccess derrière pour vérifier si vous pouvez voir le fichier. Si ce n'est pas le cas, un message d'erreur s'affichera probablement.
6. Définition du fuseau horaire de votre serveur
Si vous remarquez que pour une raison ou une autre, les heures sur votre serveur semblent être un peu décalées, vous devrez peut-être forcer un fuseau horaire à l'aide de la .htaccess déposer. C'est quelque chose qui est encore une fois facile à faire et qui ne nécessite qu'une seule ligne de code ;
SetEnv TZ America/yourtimezone
Il existe une liste énorme de fuseaux horaires disponibles et vous pouvez trouver la correspondance la plus proche en faisant référence à la liste des fuseaux horaires pris en charge.
Adoptez le pouvoir de .htaccess
Les échantillons que j'ai montrés ici ne sont que la partie visible d'un très grand iceberg. Il donne aux utilisateurs d’hébergement Web un pouvoir bien plus grand sur leurs sites que celui qui leur serait normalement attribué par le biais d’un panneau de configuration et un large éventail d’outils avec lesquels travailler.
Apprendre à utiliser le code n’est qu’un pas en avant avec la puissance de Google. La meilleure chose à ce sujet est que vous devez seulement choisir et apprendre les éléments dont vous avez besoin.
FAQ sur le fichier .htaccess
Non, .utilisation de .htaccess n'est pas obligatoire. Cependant, c'est l'un des seuls moyens hébergement mutualisé les utilisateurs peuvent obtenir un certain contrôle sur leur l'hébergement Web serveur. Si vous ne prévoyez pas de modifier la configuration du serveur sur l'hébergement mutualisé, le fichier est inutile.
Le fichier .htaccess étant destiné aux configurations du serveur, il contient du code avec des instructions associées. Par exemple, la ligne "SetEnv TZ America/yourtimezone" vous permettra de définir le fuseau horaire du serveur selon vos préférences.
La meilleure façon de créer un fichier .htaccess est par le biais d'un éditeur de texte brut. Par exemple, vous pouvez utiliser Microsoft NotePad sur votre ordinateur local, puis le télécharger sur votre serveur d'hébergement Web. Alternativement, la plupart des gestionnaires de fichiers d'hébergement Web vous permettront également de créer des fichiers en texte brut.
La solution .htaccess le fichier n'est pas directement lié à WordPress car il est destiné aux configurations de serveur. Ton WordPress le site Web peut ou non en avoir un. S'il n'est pas présent, vous pouvez toujours créer et utiliser un .htaccess fichier manuellement.