web-dev-qa-db-fra.com

Désactiver tous les agents utilisateurs sauf un utilisant .htaccess?

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?

3
Kian

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.

4
Kian