Je voudrais refuser tous les fichiers dans un répertoire, mais index.php (comme étant la page par défaut).
Cette solution fonctionne presque:
Deny from all Order Allow,Deny Allow from all
Le seul problème: “upload / index.php” est maintenant accessible, mais “/ upload /” ne l’est pas. Comment puis-je autoriser la page par défaut avec htaccess?
Votre problème est, comme vous l’avez peut-être compris, de nier tous les éléments, puis d’autoriser l’URI ‘index.php’, mais pas l’URI ‘/’ – même si le ‘/’ est redirigé vers le index.php dans les coulisses, c’est toujours un URI différent, et donc il devrait être autorisé aussi.
La méthode la plus simple consiste à utiliser la directive FilesMatch , comme ceci:
order allow,deny allow from all
Le regex ^(index\.php)?$
Signifie “index.php ou rien”.
Vous pouvez essayer d’utiliser mod_rewrite, remplacer ce que vous avez avec:
RewriteEngine On RewriteCond %{REQUEST_URI} !^/(index.php)?$ RewriteRul ^ - [L,F]