.htaccess 500 Internal Server Error ? Repérez l'erreur dans PhpStorm avant qu'elle ne coupe votre site
Htaccess Lint ajoute 14 inspections .htaccess à PhpStorm et aux autres IDE JetBrains. Directives inconnues, directives réservées au serveur, drapeaux RewriteRule cassés, expressions régulières qui ne compilent pas, sections <IfModule> non fermées : signalées pendant que vous tapez, hors ligne, sans Apache installé. Il ne modifie jamais vos fichiers de lui-même.
Pour les développeurs PHP et WordPress sur hébergement mutualisé (OVH, o2switch, Ionos, Hostinger, cPanel), les agences et les indépendants. Gratuit : 10 inspections de syntaxe et de contexte. Pro : vérifie ce que votre hébergeur autorise vraiment, essai gratuit de 30 jours.
Pourquoi une seule ligne de .htaccess renvoie une 500 pour tout le site
Apache n'ignore pas ce qu'il ne comprend pas
Une faute de frappe comme RewriteRules, une directive collée depuis une configuration de serveur comme Listen 80, ou un guillemet manquant : Apache arrête de lire le .htaccess et répond 500 Internal Server Error à chaque requête dans ce dossier.
RewriteRule qui ne marche pas, ou pire
[L,R301] au lieu de [L,R=301], une parenthèse non fermée dans un motif, un RewriteCond suivi de rien, RewriteEngine On oublié : les erreurs de mod_rewrite cassent le site ou ne font rien du tout, en silence.
Marche en local, 500 sur l'hébergement mutualisé
Header set hors de <IfModule mod_headers.c>, Options sur un hébergeur qui ne l'autorise pas, <IfModule mod_rewirte.c> ignoré en silence. Pro vérifie votre fichier contre les modules et les classes AllowOverride de votre hébergeur.
En plus de la prise en charge .htaccess intégrée
La prise en charge Apache config (.htaccess) intégrée à PhpStorm vous donne la coloration, la complétion, la documentation et les erreurs d'analyse. Htaccess Lint ajoute ce qu'Apache refuserait à l'exécution : des inspections que vous pouvez activer, désactiver et régler dans Settings | Editor | Inspections | Htaccess Lint, une correction rapide « Did you mean » (Alt+Enter), et Code | Inspect Code pour un projet entier. Une erreur d'analyse déjà signalée par l'IDE n'est pas signalée deux fois.
Exemple d'inspection .htaccess : drapeaux RewriteRule, expressions régulières et directives
Tiré d'un .htaccess réel, assemblé à partir d'extraits trouvés en ligne.
Avant
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R301]
RewriteRules ^shop/(.*)$ /store/$1 [L]
RewriteRule ^(.*$ /index.php [L]
Listen 80
- Ligne 3 · Invalid RewriteRule/RewriteCond flag: Unknown RewriteRule flag 'R301': Apache answers 500. Did you mean 'R=301'?
- Ligne 4 · Unknown directive: Unknown directive 'RewriteRules': Apache answers 500 to any unknown directive in an .htaccess file. Did you mean 'RewriteRule'?
- Ligne 5 · Invalid regular expression: Invalid regular expression '^(.*$': Unclosed group. Apache answers 500.
- Ligne 6 · Context not allowed: Listen is not allowed in an .htaccess file (allowed in: server config): Apache answers 500.
Après
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]
RewriteRule ^shop/(.*)$ /store/$1 [L]
RewriteRule ^(.*)$ /index.php [L]
- Aucun problème.
Listena sa place dans la configuration du serveur, pas dans le .htaccess.
Les deux premières corrections tiennent chacune en un Alt+Enter. Le .htaccess WordPress par défaut ne produit aucun problème.
Gratuit ou Pro
| Inspection | Gratuit | Pro |
|---|---|---|
| Directives inconnues avec correction rapide « Did you mean », directives retirées dans Apache 2.4 | Oui | Oui |
Directives et sections réservées au serveur (Listen, ServerName, <VirtualHost>…) | Oui | Oui |
| Sections non fermées ou mal appariées, nombre d'arguments, arguments invalides, fichier illisible | Oui | Oui |
| Drapeaux RewriteRule et RewriteCond, expressions régulières, RewriteCond orphelin, RewriteEngine On manquant | Oui | Oui |
Directives de module hors de <IfModule> | Non | Oui |
| Modules non chargés sur votre hébergement, restrictions AllowOverride | Non | Oui |
Module mal orthographié dans <IfModule> (bloc ignoré en silence) | Non | Oui |
Pro : 22 $ ou 22 € HT par an et par utilisateur
Essai gratuit de 30 jours, lancé depuis l'IDE. Abonnement annuel par utilisateur, toutes les mises à jour incluses. Paiement, facture et TVA gérés par JetBrains Marketplace. Remboursement intégral dans les 14 jours suivant l'achat, sans justification.
Confidentialité
Htaccess Lint ne collecte aucune donnée et ne fait aucune requête réseau. Il n'exécute jamais rien depuis vos fichiers et n'écrit dans un fichier que lorsque vous appliquez une correction rapide. Les licences sont vérifiées par l'IDE lui-même. Lire la politique de confidentialité.
FAQ
Quels IDE sont pris en charge ?
PhpStorm d'abord, et tout IDE JetBrains 2025.2 ou plus récent : le plugin ne dépend que de la plateforme IntelliJ. Là où la prise en charge .htaccess intégrée n'est pas installée, les fichiers .htaccess s'ouvrent en texte brut et les inspections fonctionnent quand même.
Fonctionne-t-il hors ligne ? Faut-il Apache installé ?
Oui, et non. Toutes les vérifications tournent en local, à partir d'un catalogue de directives Apache HTTP Server 2.4 fourni avec le plugin. Apache 2.2 n'est pas pris en charge.
Fonctionne-t-il avec WordPress ?
Oui. Le .htaccess WordPress par défaut ne produit aucun problème ; le plugin vérifie les règles que vous ou vos extensions ajoutez autour, y compris celles des sous-dossiers comme wp-content/uploads.
Comment lui indiquer mon hébergement ?
Dans Settings | Tools | Htaccess Lint : les modules Apache que votre hébergeur charge (par exemple mod_rewrite, mod_headers, mod_expires) et les classes AllowOverride qu'il accorde. Demandez au support de votre hébergeur si vous ne les connaissez pas. Laissé vide, seules les directives de module non protégées sont signalées.
Peut-il tester une URL contre mes règles de réécriture ?
Pas dans cette version. Il vérifie la syntaxe et le contexte, pas le résultat d'une réécriture. Les boucles de redirection et l'héritage entre .htaccess imbriqués ne sont pas vérifiés non plus.
Puis-je être remboursé ?
Oui : remboursement intégral dans les 14 jours suivant l'achat, sans justification. Écrivez à support@timaub.fr.
Est-ce un projet officiel Apache ou JetBrains ?
Non. Htaccess Lint est un produit indépendant. Apache et Apache HTTP Server sont des marques de l'Apache Software Foundation ; ce plugin n'est ni affilié à l'ASF ni approuvé par elle.
Vérifiez votre .htaccess avant le prochain déploiement
Installez le plugin, ouvrez votre .htaccess et regardez ce qui est signalé.