Ce que dit la documentation d'Apache
La documentation d'Apache sur les fichiers .htaccess les décrit comme des fichiers de configuration répartis, dossier par dossier. Trois points comptent pour un site :
- La portée : les directives s'appliquent au dossier qui contient le fichier et à tous ses sous-dossiers. Un .htaccess placé plus bas peut modifier ce qu'a fixé un .htaccess plus haut.
- L'autorisation : Apache ne lit ces fichiers que si l'hébergeur l'a permis, par la directive
AllowOverride. AvecAllowOverride None, le fichier est ignoré sans message. - Le coût : le fichier est relu à chaque requête. Apache recommande donc de placer les réglages dans la configuration du serveur quand on y a accès, ce qui n'est pas le cas sur un hébergement partagé.
À quoi il sert, en pratique
| Usage | Directives | Pour aller plus loin |
|---|---|---|
| Rediriger une page ou un site | Redirect, RewriteRule | Redirection 301 |
| Réécrire les adresses de WordPress | RewriteRule | ci-dessous |
| Choisir une page d'erreur | ErrorDocument | documentation d'Apache |
| Protéger un dossier par mot de passe | AuthType, Require | documentation d'Apache |
Un exemple, pour une page d'erreur personnalisée :
ErrorDocument 404 /page-introuvable.html
Le .htaccess de WordPress
WordPress écrit lui-même un bloc dans le .htaccess du dossier racine pour ses permaliens, les adresses lisibles. La documentation de WordPress donne le bloc par défaut, utile pour réparer un fichier abîmé :
# BEGIN WordPress
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]
# END WordPress
Vos propres règles se placent au-dessus de ce bloc, pour qu'elles s'appliquent avant celles de WordPress. Une extension qui réécrit le fichier peut l'abîmer : gardez une copie avant toute modification.
Modifier le fichier
- Ouvrez le gestionnaire de fichiers de Plesk et allez dans le dossier racine du site.
- Si le fichier n'apparaît pas, affichez les fichiers cachés : son nom commence par un point.
- Téléchargez une copie du fichier avant de le modifier.
- Ouvrez-le dans l'éditeur, faites la modification, enregistrez.
- Rechargez le site. Si une erreur 500 apparaît, une ligne est mal écrite : remettez la copie, puis cherchez la ligne en cause dans le journal d'erreurs, comme l'explique Erreur 500 : comprendre et corriger.
Chez Hubspace
Nos hébergements placent nginx devant Apache, et Apache lit les fichiers .htaccess : les règles de WordPress et vos redirections fonctionnent sans adaptation, y compris pour un ancien fichier statique, puisque la requête passe par Apache avant d'être servie. Les réglages de PHP, en revanche, ne se changent pas par le .htaccess chez nous : ils se modifient sur demande, comme l'explique Les limites PHP : mémoire, taille d'envoi.
Questions fréquentes
Mon .htaccess ne fait rien : pourquoi ?
Soit le serveur ne lit pas ces fichiers (AllowOverride None), soit le fichier n'est pas dans le bon dossier ou porte un autre nom. La documentation d'Apache propose un test : écrire un mot qui n'existe pas dans le fichier ; si la page ne passe pas en erreur 500, le fichier n'est pas lu.
Le .htaccess fonctionne-t-il avec nginx ?
nginx seul ne lit pas les fichiers .htaccess. Quand nginx est placé devant Apache, comme chez nous, c'est Apache qui les applique.
Où placer une redirection du domaine entier ?
Dans le .htaccess du dossier racine, au-dessus du bloc WordPress. Les exemples sont dans Redirection 301.
Articles liés
- Changer la version de PHP de son siteChanger la version de PHP de votre site dans Plesk : vérifier la version actuelle, tester la compatibilité, passer en PHP 8.3 et revenir en arrière si besoin.
- Augmenter memory_limit : les limites de PHPAugmenter memory_limit, upload_max_filesize ou max_execution_time : ce que limite chaque réglage de PHP, les messages d'erreur, comment les lire et les changer.
- Tâche cron : planifier une tâche dans PleskCréer une tâche cron dans Plesk : lancer une commande, appeler une adresse ou un script PHP à heure fixe, la tester, et remplacer le WP-Cron de WordPress.