Htaccess Lint

.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.

PhpStorm avec un fichier .htaccess d'hébergement mutualisé ouvert : des lignes sont signalées dans l'éditeur et la fenêtre d'outils Problems liste 14 problèmes, parmi eux une action Header inconnue, un ExpiresByType avec trop d'arguments, un statut de Redirect 310 invalide, un groupe d'expression régulière non fermé et le drapeau RewriteRule R301 avec la suggestion R=301.
Erreurs de copier-coller typiques, signalées dans le .htaccess et listées dans la fenêtre d'outils Problems.

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. Listen a 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

InspectionGratuitPro
Directives inconnues avec correction rapide « Did you mean », directives retirées dans Apache 2.4OuiOui
Directives et sections réservées au serveur (Listen, ServerName, <VirtualHost>…)OuiOui
Sections non fermées ou mal appariées, nombre d'arguments, arguments invalides, fichier illisibleOuiOui
Drapeaux RewriteRule et RewriteCond, expressions régulières, RewriteCond orphelin, RewriteEngine On manquantOuiOui
Directives de module hors de <IfModule>NonOui
Modules non chargés sur votre hébergement, restrictions AllowOverrideNonOui
Module mal orthographié dans <IfModule> (bloc ignoré en silence)NonOui

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é.