Documentation / .htaccess — les deux modes, et celui qu'il vous faut

.htaccess — les deux modes, et celui qu'il vous faut

Si vous avez ajouté quelque chose à .htaccess et que le site se comporte comme si vous ne l'aviez pas fait, lisez ceci d'abord. Rien n'est cassé — votre site est probablement dans le mode qui traduit .htaccess au lieu de le lire, et la traduction couvre les règles courantes, pas toutes.

Ouvrez Domaines → Apache / .htaccess. Le badge en haut de la carte indique dans quel mode ce site se trouve.

Les deux modes

Traduit (par défaut). Votre .htaccess est converti dans les propres règles du serveur web rapide. Les directives courantes fonctionnent. Tout ce que le convertisseur ne peut pas reproduire est ignoré, et cela vous est listé dans le tableau sous la carte. Une modification du fichier ne prend effet qu'après avoir appuyé sur Traduire maintenant — le fichier n'est pas lu à chaque requête.

.htaccess complet. Votre fichier est lu directement, exactement comme il l'était sur cPanel. Chaque directive prise en charge par Apache fonctionne, et une modification prend effet dès la requête suivante. Légèrement plus lent que le mode traduit, car chaque requête passe par une étape supplémentaire.

Celui qu'il vous faut

Restez en mode Traduit si votre .htaccess est un bloc de permaliens WordPress, une redirection forçant le HTTPS, une redirection www/non-www, une ligne Redirect, un interrupteur de listage de répertoire, ou une protection basic-auth. C'est le cas de la plupart des sites, et c'est le parcours le plus rapide.

Activez le .htaccess complet si :

  • le tableau sous la carte liste des directives dont vous avez réellement besoin,
  • vous définissez des valeurs PHP depuis .htaccess (php_value, php_flag) — celles-ci ne sont jamais appliquées en mode traduit, quoi que dise le fichier,
  • vous utilisez SetEnv, SetEnvIf, RequestHeader, AddType, AddHandler, ou des règles de réécriture avec des conditions que le convertisseur signale,
  • ou vous déplacez un site depuis ailleurs et préférez ne pas auditer son .htaccess du tout.

Choisir la prise en charge complète n'entraîne aucune pénalité, hormis un peu de latence. Il n'y a pas de frais, pas d'étape supplémentaire ensuite, et pas de configuration.

Lire le tableau

Sous la carte de mode, chaque ligne est une directive que le convertisseur n'a pas pu reproduire, avec son numéro de ligne et la marche à suivre.

  • En mode Traduit, la note au-dessus du bouton indique combien d'entre elles sont ignorées en ce moment. Ces règles ne s'exécutent pas.
  • En mode .htaccess complet, la même liste apparaît, mais la note indique qu'elles fonctionnent — la liste n'a d'importance que si vous rebasculez un jour.

Si le tableau est vide, rien dans votre .htaccess n'est perdu, et le mode traduit fait tout ce que le fichier demande.

Basculer

Un seul bouton. En mode traduit il affiche Activer la prise en charge complète de .htaccess ; en mode complet il affiche Passer au traduit (plus rapide).

  • Cela prend quelques secondes. La carte affiche Application — cela peut prendre quelques secondes… pendant le travail.
  • Votre site ne tombe pas. Le nouveau parcours est mis en place avant que l'ancien ne soit retiré, dans les deux sens, et si une partie échoue, les deux côtés sont remis en l'état.
  • Rien d'autre concernant le compte ne change. Vos fichiers, votre racine du document, votre version de PHP, votre certificat et votre HTTPS restent exactement tels quels. Le PHP de votre site s'exécute toujours en tant que votre propre utilisateur, isolé de tout autre compte du serveur, dans les deux modes.
  • Les adresses des visiteurs dans votre journal d'accès restent les vraies adresses des visiteurs.
  • Vous pouvez rebasculer à tout moment, aussi souvent que vous le souhaitez.

En venant de cPanel

Vous n'avez rien à faire. Lorsqu'un compte est importé depuis une sauvegarde cPanel, l'importateur traduit les fichiers .htaccess qu'il trouve, et si une directive ne peut pas être traduite, le compte est immédiatement placé en mode .htaccess complet. Le site se comporte comme sur l'ancien serveur dès la première requête.

Le rapport d'import montre cela sous forme de deux lignes : combien de règles ont été traduites et combien nécessitent une révision, puis si le mode a été basculé.

Les sites qui n'ont jamais eu besoin de rien d'inhabituel restent sur le parcours traduit, plus rapide.

Quand quelque chose semble anormal

Une règle ne fait toujours rien après que vous avez modifié le fichier, et vous êtes en mode traduit. Appuyez sur Traduire maintenant. Dans ce mode, le fichier est lu quand vous le demandez, pas à chaque requête.

Chaque page répond HTTP 500 juste après l'activation de la prise en charge complète. Rebasculez — le bouton vous remet où vous étiez — et dites à votre hébergeur ce qui s'est passé. Cela signifie qu'Apache sur ce serveur manque d'un module dont votre fichier a besoin (RewriteEngine On est le plus courant). C'est un réglage côté serveur, pas quelque chose que vous pouvez corriger depuis votre compte.

Chaque page répond 502 et vous êtes en mode complet. Le processus Apache sur le serveur ne fonctionne pas. Les sites en mode traduit ne sont pas affectés, ce qui est une chose utile à indiquer à votre hébergeur.

Le basculement est refusé avec un message à propos des ports Apache. Le serveur a épuisé les emplacements qu'il alloue à ce mode. Seul votre hébergeur peut l'augmenter.

La tuile Apache / .htaccess n'est pas du tout dans votre panneau. Soit votre forfait d'hébergement ne l'inclut pas, soit le serveur n'a pas été configuré avec Apache disponible. Demandez à votre hébergeur.

Ce que le mode complet ne change pas

  • Votre certificat. Le HTTPS est terminé avant qu'Apache ne voie la requête, l'émission et le renouvellement sont donc intacts.
  • L'isolation. Le PHP s'exécute en tant que l'utilisateur propre à votre compte dans les deux modes.
  • Vos chiffres de bande passante et vos statistiques de visiteurs.
  • Tout autre compte du serveur. Ce réglage est le vôtre seul — il est décidé par compte, pas par serveur.