0 votes

Comment exclure les fichiers .png de la réécriture via htaccess ?

J'ai la règle suivante qui redirige tout le trafic vers index.php lorsque le dossier public est visité. Comment puis-je la modifier pour exclure les fichiers .png ? Cela signifie que si le fichier /public/quelquechose.png est visité, il doit s'afficher dans le navigateur ou être accessible dans le code lorsqu'il est appelé à l'aide d'un fichier .png :

"<img src='/public/example.png'>" .

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -s [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -l [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

RewriteRule ^.*$ index.php [NC,L]

3voto

zombat Points 46702

J'utilise généralement un RewriteCond pour spécifier les extensions de contenu média statique que je ne veux pas voir redirigées vers un contrôleur frontal. Le tuyau ( | ) signifient "ou", vous pouvez donc ajouter ou supprimer des extensions dans cette règle pour qu'elle s'applique à celles que vous ne voulez pas voir redirigées :

RewriteCond $1 !\.(js|ico|gif|jpg|png|css|swf|mp3|wav|txt|xml)$

Editar

Les commentateurs ont raison, si vous utilisez cette phrase exacte, le dollar a besoin d'un certain contexte. Dans votre cas particulier, vous pourriez le modifier légèrement et le mettre à la place sur la ligne RewriteRule de votre index.php, comme ceci :

RewriteRule !\.(js|ico|gif|jpg|png|css|html|swf|mp3|wav)$ index.php [NC,L]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X