Guide .htaccess : Paramètres cachés, redirections et sécurité

Le fichier .htaccess est un fichier de configuration locale qui permet de contrôler certains paramètres de votre site web directement dans le répertoire concerné. Il est fréquemment utilisé dans les environnements d'hébergement web avec cPanel pour mettre en place des redirections, forcer le HTTPS, désactiver le listage des répertoires, restreindre les accès ou définir certaines règles de sécurité.

Pour de nombreux exploitants de sites web, le .htaccess est l'un des fichiers les plus importants de l'hébergement web, même s'il paraît discret à première vue. Le nom de fichier commence par un point, c'est pourquoi il est traité par défaut comme un fichier caché dans de nombreux gestionnaires de fichiers. Il joue un rôle majeur, en particulier avec les systèmes de gestion de contenu tels que WordPress, Joomla ou d'autres applications PHP, par exemple pour des URL optimisées pour les moteurs de recherche, des redirections et la protection des accès.

Note de sécurité importante :
Un fichier .htaccess erroné peut rendre votre site web inaccessible et afficher à la place une erreur telle que 500 Internal Server Error. Par conséquent, créez une copie de sauvegarde du fichier existant avant chaque modification. Ne modifiez que quelques lignes à la fois et testez immédiatement votre site web par la suite.

Qu'est-ce que le fichier .htaccess exactement ?

Le .htaccess est un fichier de configuration qui contient des instructions pour le serveur web. Ces instructions s'appliquent généralement au répertoire dans lequel se trouve le fichier, ainsi qu'à ses sous-répertoires. Si le fichier se trouve par exemple dans le dossier public_html, il peut influencer le comportement de l'ensemble du site web.

Les tâches typiques d'un fichier .htaccess sont :

  • Redirections d'anciennes URL vers de nouvelles URL
  • Forçage des connexions HTTPS
  • Redirection de www vers le domaine sans www ou vice-versa
  • Protection contre le listage des répertoires
  • Blocage d'adresses IP individuelles
  • Protection de certains fichiers contre un accès direct
  • Définition de pages d'erreur personnalisées
  • Règles techniques pour les systèmes de gestion de contenu comme WordPress

Le .htaccess est puissant, mais doit être édité avec prudence. Toutes les directives Apache possibles ne sont pas autorisées dans chaque environnement d'hébergement. Si une règle n'est pas prise en charge ou est erronée, cela peut entraîner un message d'erreur.

Où se trouve le fichier .htaccess dans cPanel ?

Dans la plupart des cas, le fichier .htaccess le plus important de votre site se trouve dans le répertoire principal du site web. Pour un domaine principal, il s'agit souvent du dossier public_html. Pour les domaines compagnons, les sous-domaines ou les applications installées séparément, le fichier peut également se trouver dans un autre répertoire.

Voici comment trouver le fichier dans le Gestionnaire de fichiers cPanel :

  1. Connectez-vous à votre compte cPanel.
  2. Ouvrez la section Gestionnaire de fichiers.
  3. Naviguez vers le dossier de votre site web, souvent public_html.
  4. Cliquez sur Paramètres en haut à droite.
  5. Activez l'option Afficher les fichiers masqués (dotfiles).
  6. Cliquez sur Save ou Enregistrer.
  7. Le fichier .htaccess devrait maintenant être visible, s'il existe déjà.

Si aucun fichier .htaccess n'est présent, il peut être créé à nouveau si nécessaire. Veillez à respecter scrupuleusement le nom du fichier : .htaccess. Aucune extension de fichier telle que .txt ne doit être ajoutée.

Toujours créer une sauvegarde avant les modifications

Avant de modifier le fichier, vous devez créer une copie de sauvegarde. C'est particulièrement important car une simple faute de frappe peut bloquer le site web.

  1. Dans le Gestionnaire de fichiers cPanel, sélectionnez le fichier .htaccess.
  2. Cliquez sur Copier ou téléchargez le fichier sur votre ordinateur.
  3. Enregistrez la copie sous le nom .htaccess-backup ou htaccess-sauvegarde.txt par exemple.
  4. Ne modifiez le fichier .htaccess actif qu'après cette étape.

Si une erreur survient après une modification, vous pouvez annuler le dernier changement ou restaurer la sauvegarde.

Exemples pratiques de fichiers .htaccess

Les exemples suivants montrent des règles fréquemment utilisées. Ne copiez pas de code aveuglément sur votre site web, mais vérifiez toujours si des règles similaires existent déjà. L'ordre des règles est important, en particulier pour WordPress et d'autres systèmes CMS.

1. Forcer le HTTPS

Cette règle redirige automatiquement les visiteurs de http:// vers https://. La condition préalable est qu'un certificat SSL valide soit actif pour le domaine.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Une redirection permanente avec R=301 indique aux navigateurs et aux moteurs de recherche que la version HTTPS doit être utilisée de manière durable. Après la configuration, vous devez tester plusieurs sous-pages de votre site web.

2. Rediriger de www vers non-www

Si vous souhaitez que votre site web soit accessible de manière uniforme sans www, vous pouvez utiliser la règle suivante. Remplacez example.ch par votre propre domaine.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.ch$ [NC]
RewriteRule ^(.*)$ https://example.ch/$1 [L,R=301]

Une variante de domaine uniforme est judicieuse du point de vue du référencement (SEO), car elle permet de réduire le contenu dupliqué sous différentes variantes de domaine.

3. Rediriger de non-www vers www

Si vous souhaitez au contraire que votre site web soit toujours appelé avec www, utilisez cette variante. Ici aussi, remplacez example.ch par votre propre domaine.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.ch$ [NC]
RewriteRule ^(.*)$ https://www.example.ch/$1 [L,R=301]

Il est important de choisir une seule variante. N'utilisez pas simultanément des redirections contradictoires pour www et sans www.

4. Rediriger définitivement une seule page

Si l'URL d'une page a changé, vous pouvez rediriger définitivement les anciennes adresses vers de nouvelles adresses. C'est particulièrement important pour éviter que les visiteurs et les moteurs de recherche ne tombent sur une page d'erreur 404.

Redirect 301 /alte-seite.html https://example.ch/neue-seite.html

Cette règle convient pour des redirections simples de pages individuelles. Pour des structures d'URL plus complexes, les règles RewriteRule sont souvent plus flexibles.

5. Désactiver le listage des répertoires

Si un répertoire ne contient pas de fichier d'index tel que index.php ou index.html, le serveur peut éventuellement afficher une liste des fichiers qu'il contient. Pour des raisons de sécurité et de confidentialité, cela est généralement indésirable.

Options -Indexes

Avec cette règle, vous empêchez les visiteurs de voir le contenu d'un répertoire sous forme de liste de fichiers.

6. Bloquer une adresse IP individuelle

Avec Apache 2.4, la protection des accès est contrôlée par la directive Require. L'exemple suivant bloque une adresse IP spécifique. Remplacez 203.0.113.10 par l'adresse IP concernée.

<RequireAll>
    Require all granted
    Require not ip 203.0.113.10
</RequireAll>

Le blocage d'adresses IP individuelles peut être utile en cas d'accès suspects. Cependant, il ne remplace pas une solution de sécurité complète, car les attaquants peuvent changer d'adresse IP ou se connecter via des réseaux à adresses dynamiques.

7. Bloquer l'accès aux fichiers sensibles

Certains fichiers ne devraient jamais être accessibles directement via le navigateur. Il peut s'agir, par exemple, de fichiers de sauvegarde, de fichiers de configuration ou de fichiers de développement.

<FilesMatch "^(\.env|composer\.json|composer\.lock|package\.json)$">
    Require all denied
</FilesMatch>

Cette règle bloque l'accès direct à certains fichiers techniques typiques. La présence de ces fichiers dans votre répertoire web dépend de votre application. En cas de doute, les fichiers de configuration sensibles ne devraient pas du tout se trouver dans le répertoire web public.

8. Définir une page d'erreur personnalisée pour les erreurs 404

Une page d'erreur personnalisée peut aider les visiteurs lorsqu'une page est introuvable. Au lieu d'un message technique standard, vous pouvez afficher une page utile contenant une navigation, une recherche ou un moyen de contact.

ErrorDocument 404 /404.html

Le fichier 404.html doit exister dans le chemin spécifié. Alternativement, un fichier PHP peut également être utilisé si votre site web le prévoit.

Notes importantes pour les sites web WordPress

WordPress utilise souvent le fichier .htaccess pour les "permaliens", c'est-à-dire les URL optimisées pour les moteurs de recherche. Le bloc WordPress ressemble généralement à cet exemple :

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Ne modifiez le bloc WordPress que si vous savez exactement ce que vous faites. De nombreuses règles doivent être insérées au-dessus ou en dessous de ce bloc. Si le bloc WordPress est endommagé, les sous-pages de votre site web risquent de ne plus être accessibles correctement.

Si vous constatez des erreurs après avoir modifié les permaliens de WordPress, vous pouvez enregistrer à nouveau la structure des permaliens dans la zone d'administration de WordPress sous Réglages > Permaliens. De cette façon, WordPress recrée souvent les règles nécessaires.

Erreurs courantes lors des ajustements de .htaccess

De nombreux problèmes liés au .htaccess ne proviennent pas de causes techniques complexes, mais de petites erreurs de syntaxe ou de règles contradictoires. Soyez particulièrement attentif aux points suivants :

  • Règles RewriteEngine en double : Plusieurs lignes RewriteEngine On ne sont généralement pas critiques, mais elles peuvent compliquer la lisibilité.
  • Boucles de redirection infinies : Elles se produisent lorsqu'une redirection renvoie vers elle-même ou se heurte à une règle contradictoire.
  • Noms de domaine incorrects : Les espaces réservés comme example.ch doivent toujours être remplacés par votre domaine réel.
  • Syntaxe Apache obsolète : Les anciens exemples avec Order Allow,Deny, Deny from et Allow from proviennent d'Apache 2.2 et ne constituent plus la syntaxe recommandée dans les environnements Apache 2.4 modernes.
  • Règles au mauvais endroit : Dans les systèmes CMS, l'ordre des règles peut être crucial.
  • Condition SSL manquante : Les redirections HTTPS ne fonctionnent correctement que si un certificat SSL valide est actif pour le domaine.

Que faire en cas de 500 Internal Server Error ?

Si votre site web n'est plus accessible après une modification du .htaccess, agissez calmement et méthodiquement :

  1. Ouvrez le Gestionnaire de fichiers cPanel.
  2. Naviguez vers le répertoire du site web concerné.
  3. Renommez le fichier .htaccess à titre de test, par exemple en .htaccess-defectueux.
  4. Accédez à nouveau à votre site web dans le navigateur.
  5. Si le site web est à nouveau accessible, l'erreur se situe très probablement dans le .htaccess.
  6. Comparez le fichier avec votre copie de sauvegarde ou supprimez la dernière règle insérée.

Pour WordPress, il peut ensuite être nécessaire de réenregistrer les permaliens dans la zone d'administration afin que WordPress génère à nouveau un fichier .htaccess correct.

Bonnes pratiques pour un fichier .htaccess propre

  • Créez une copie de sauvegarde avant chaque modification.
  • Insérez les nouvelles règles étape par étape et testez votre site web ensuite.
  • Commentez vos propres règles avec # afin de pouvoir comprendre plus tard à quoi elles servent.
  • Évitez les redirections doubles ou contradictoires.
  • N'utilisez les redirections permanentes 301 que si la modification doit être définitive.
  • Conservez les fichiers sensibles en dehors du répertoire web public dans la mesure du possible.
  • Après les modifications, vérifiez non seulement la page d'accueil, mais aussi les sous-pages, les formulaires, les pages de connexion et les fichiers multimédias.

FAQ sur le fichier .htaccess

Pourquoi je ne vois pas le fichier .htaccess dans cPanel ?

Les fichiers qui commencent par un point sont traités comme des fichiers cachés. Dans le Gestionnaire de fichiers cPanel, sous Paramètres, activez l'option Afficher les fichiers masqués (dotfiles).

Puis-je supprimer le fichier .htaccess ?

Vous ne devriez le faire que si vous connaissez la fonction que ce fichier remplit sur votre site web. Avec WordPress et de nombreuses autres applications, la suppression peut entraîner le dysfonctionnement des sous-pages, des redirections ou des règles de sécurité. Créez toujours une sauvegarde au préalable.

Pourquoi une petite modification provoque-t-elle immédiatement une erreur ?

Le fichier .htaccess est directement analysé par le serveur web. Une simple instruction non valide, un caractère erroné ou une directive non prise en charge peut amener le serveur à interrompre la requête avec une erreur.

Le fichier .htaccess remplace-t-il un plugin de sécurité ou un pare-feu ?

Non. Le fichier .htaccess peut compléter certaines mesures de protection, mais il ne remplace pas une stratégie de sécurité complète. Les mises à jour, les mots de passe sécurisés, les applications à jour, les sauvegardes et des mécanismes de protection appropriés restent indispensables.

Dois-je configurer les redirections via .htaccess ou via mon CMS ?

Cela dépend du cas d'utilisation. Des redirections simples et isolées peuvent être configurées directement via le .htaccess. En cas de redirections nombreuses ou de gestion éditoriale, un plugin CMS est souvent plus clair. Les redirections techniques telles que le HTTPS ou les redirections www sont souvent judicieuses dans le .htaccess.

Résumé :
Le fichier .htaccess est un outil puissant pour contrôler votre site web. Il convient pour les redirections, les règles HTTPS, la protection des accès et d'autres paramètres techniques. En même temps, il doit être modifié avec prudence, car des règles erronées peuvent immédiatement nuire à votre site web. Par conséquent, travaillez toujours avec des copies de sauvegarde et testez soigneusement les modifications.

Votre site web affiche une erreur après une modification ou vous n'êtes pas sûr de la règle correcte ?
Supprimez d'abord la dernière modification ou restaurez votre copie de sauvegarde. Si vous avez des questions, le support CURIAWEB se tient volontiers à votre disposition.

Cette réponse était-elle pertinente? 1 Utilisateurs l'ont trouvée utile (1 Votes)