Refuser tous les fichiers, mais index / page par défaut avec htaccess

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]