Avez-vous déjà ressenti le besoin de modifier la configuration de votre site Web fonctionnant sur un serveur Web Apache sans avoir un accès root aux fichiers de configuration du serveur (httpd.conf
) ? C'est ce que le .htaccess
le fichier est pour.
Le .htaccess
Le fichier fournit un moyen d'apporter des modifications de configuration à votre site Web sur une base par répertoire. Le fichier est créé dans un répertoire spécifique contenant une ou plusieurs directives de configuration appliquées à ce répertoire et à ses sous-répertoires. En hébergement mutualisé, vous devrez utiliser un .htaccess
fichier pour apporter des modifications à la configuration de votre serveur.
[ Vous pourriez également apprécier : 6 compétences d'administrateur système dont les développeurs Web ont besoin ]
Utilisations courantes du fichier .htaccess
Le .htaccess
Le fichier a plusieurs cas d'utilisation. Les exemples les plus courants incluent :
- Redirections pour certaines URL
- Charger des pages d'erreur personnalisées, par exemple des pages 404
- Forcer votre site Web à HTTPS au lieu de HTTP
- Autoriser ou refuser l'accès à votre site Web à des adresses IP spécifiques
- Protégez par mot de passe certains répertoires de votre serveur
Quand ne pas utiliser .htaccess ?
Le .htaccess
est couramment utilisé lorsque vous n'avez pas accès au fichier de configuration du serveur principal httpd.conf
ou la configuration de l'hôte virtuel, qui ne se produit que si vous avez acheté un hébergement mutualisé. Vous pouvez réaliser tous les cas d'utilisation mentionnés ci-dessus en modifiant le(s) fichier(s) de configuration du serveur principal (par exemple, httpd.conf
) ou les fichiers de configuration de l'hôte virtuel, vous ne devez donc pas utiliser .htaccess
lorsque vous avez accès à ces fichiers. Toute configuration que vous devez mettre dans un .htaccess
peut tout aussi bien être ajouté dans un
Raisons pour éviter d'utiliser .htaccess
Il y a deux raisons d'éviter l'utilisation de .htaccess
des dossiers. Examinons-les de plus près.
Premier : Performance - Lorsque AllowOverride est configuré pour autoriser l'utilisation de .htaccess
fichiers, httpd
recherchera .htaccess
fichiers dans chaque répertoire à partir du répertoire parent. Cela aura un impact sur les performances, que vous l'utilisiez ou non. Le .htaccess
le fichier est chargé chaque fois qu'un document est demandé à partir d'un répertoire.
Pour avoir une vue complète des directives qu'il doit appliquer, httpd
recherchera toujours .htaccess
fichiers en commençant par le répertoire parent jusqu'à ce qu'il atteigne le sous-répertoire cible. Si un fichier est demandé depuis le répertoire /public_html/test_web/content
, httpd
doit rechercher les fichiers suivants :
/.htaccess
/public_html/.htaccess
/public_html/test_web/.htaccess
/public_html/test_web/content/.htaccess
Ainsi, quatre accès au système de fichiers ont été effectués pour chaque accès à un fichier à partir d'un contenu de sous-répertoire même si le fichier n'est pas présent.
Deuxième :Sécurité - accorder aux utilisateurs l'autorisation d'apporter des modifications dans .htaccess
leur donne un contrôle total sur la configuration du serveur de ce site Web ou de cet hôte virtuel particulier. Toute directive dans le .htaccess
fichier a le même effet que n'importe quel placé dans le httpd
fichier de configuration lui-même, et les modifications apportées à ce fichier sont en direct instantanément sans qu'il soit nécessaire de redémarrer le serveur. Cela peut devenir risqué en termes de sécurité d'un serveur Web et d'un site Web.
Activer le fichier .htaccess
Pour activer le .htaccess
fichier, vous devez disposer des privilèges sudo/root sur le serveur.
Ouvrez le httpd
fichier de configuration de votre site Web :
/etc/httpd/conf/test.conf
Vous devez ajouter la directive de configuration suivante dans le fichier d'hôte virtuel du serveur pour autoriser le .htaccess
fichier dans DocumentRoot annuaire. Si les lignes suivantes ne sont pas ajoutées, le .htaccess
le fichier ne fonctionnera pas :
</VirtualHost>
<Directory /var/www/test.com/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Dans le cas d'un hébergement partagé, cela est déjà autorisé par les fournisseurs de services d'hébergement. Tout ce que vous avez à faire est de créer un .htaccess
fichier dans le public_html
répertoire auquel le fournisseur de services vous a donné accès et dans lequel vous téléchargerez les fichiers de votre site Web.
URL de redirection
Si votre objectif est simplement de rediriger une URL vers une autre, le bouton Redirect directive est la meilleure option que vous pouvez utiliser. Chaque fois qu'une demande provient d'un client sur une ancienne URL, il la transfère vers une nouvelle URL à un nouvel emplacement.
Si vous souhaitez effectuer une redirection complète vers un autre domaine, vous pouvez définir ce qui suit :
# Redirect to a different domain
Redirect 301 "/service" "https://newdomain.com/service"
Si vous souhaitez simplement rediriger une ancienne URL vers une nouvelle URL sur le même hébergeur :
# Redirect to a URL on the same domain or host
Redirect 301 "/old_url.html" "/new_url.html"
Load a custom 404 Error page
Pour une meilleure expérience utilisateur, chargez une page d'erreur personnalisée lorsque l'un des liens de votre site Web pointe vers le mauvais emplacement ou que le document a été supprimé.
Pour créer une page 404 personnalisée, créez simplement une page Web qui fonctionnera comme une page 404, puis ajoutez le code suivant à votre .htaccess
fichier :
ErrorDocument 404 /error/pagenotfound.html
Vous devez modifier /error/pagenotfound.html
à l'emplacement de votre page 404.
Forcer l'utilisation de HTTPS au lieu de HTTP pour votre site Web
Si vous souhaitez forcer votre site Web à utiliser HTTPS, vous devez utiliser le RewriteEngine module dans le .htaccess
dossier. Tout d'abord, vous devez activer le RewriteEngine module dans le .htaccess
fichier, puis spécifiez les conditions que vous souhaitez vérifier. Si ces conditions sont remplies, vous appliquez des règles à ces conditions.
L'extrait de code suivant réécrit toutes les requêtes vers HTTPS :
# Turn on the rewrite engine
RewriteEngine On
# Force HTTPS and WWW
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.test-website.com/$1 [R=301,L]
Passons en revue chaque ligne.
RewriteEngine activé active le RewriteEngine module. Ceci est nécessaire; sinon, les conditions et les règles ne fonctionneront pas.
La première condition vérifie si www
est saisi. [OU, NC] signifie aucun cas , c'est-à-dire même si l'URL saisie contient un mélange de lettres majuscules et minuscules.
Ensuite, il vérifie si le protocole HTTPS a déjà été saisi par l'utilisateur. %{https} de réduction signifie que le protocole HTTPS n'a pas été utilisé.
Lorsque le RewriteCond est satisfait, nous utilisons RewriteRule pour rediriger l'URL vers HTTPS. Notez que dans ce cas, toutes les URL seront redirigées vers HTTPS à chaque demande.
[ Un guide gratuit de Red Hat :5 étapes pour automatiser votre entreprise. ]
Récapitulez
Les propriétaires de sites Web utilisent souvent le .htaccess
fichier pour contrôler le comportement de leur site Web. Dans cet article, nous avons couvert les bases du .htaccess
fichier et certains cas d'utilisation courants en place sur la plupart des sites Web.