J'ai eu du mal à faire fonctionner ce .htaccess. L'objectif est d'interdire tous les agents utilisateurs en dehors de mon application. L'application envoie une demande GET à un agent utilisateur de Disons 'AcmeUpdater'.
Chaque fois que j'essaie de naviguer dans un fichier du dossier, j'obtiens une erreur 500 - Internal Server Error. Voici les règles que j'utilise:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} !^KMUpdaterClient*
RewriteRule .* - [F,L]
</IfModule>
J'ai mis à jour le fichier .htaccess comme suggéré dans la réponse de Nick et redémarré Apache. Après avoir essayé différentes choses, il semble que la présence d’un fichier .htaccess soit à l’origine de l’erreur 500. Je ne reçois rien dans les journaux d'erreur.
Le fichier .htaccess situé à la racine du document se présente comme suit:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
ErrorDocument 404 /index.php?error=404
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>
J'ai donc réalisé que les journaux d'erreurs étaient dans l'ordre chronologique plutôt que dans l'ordre chronologique inverse auquel je m'attendais (Oups!).
L'erreur que je reçois est: </IfModule> without matching <IfModule> section
. J'ai enlevé le </IfModule>
et j'ai toujours cette erreur. Des idées?
Nous avons enfin réalisé quel était le problème lorsque, après la suppression de la balise dans les deux fichiers, l’erreur "Commande non valide '\ xef\xbb\xbf
EF BB BF = BOM
Morale de l'histoire: Vérifiez toujours le codage * et le vidage hexadécimal de vos fichiers lorsque vous rencontrez des problèmes étranges.
* Sur le Bloc-notes ++, vous pouvez utiliser l'option Encoding -> Encode in UTF-8 without BOM
pour le supprimer.