Как исключить .png файлы от перезаписи через htaccess - PullRequest
0 голосов
/ 30 января 2010

У меня есть следующее правило, которое перенаправляет весь трафик в index.php при посещении общей папки. Как я могу изменить его, чтобы исключить файлы .png? Это означает, что если /public/something.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]

1 Ответ

3 голосов
/ 30 января 2010

Обычно я использую директиву RewriteCond для указания расширений статического медиа-контента, который я не хочу перенаправлять на Front Controller. Символ канала (|) означает «или», поэтому вы можете добавлять или удалять расширения в этом правиле, чтобы работать с любыми из тех, которые вы не хотите перенаправлять:

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

Редактировать

Комментаторы верны, если вы используете эту точную строку, $ 1 нуждается в некотором контексте. В вашем конкретном случае вы можете слегка изменить его и поместить вместо него в строку index.php RewriteRule, например так:

RewriteRule !\.(js|ico|gif|jpg|png|css|html|swf|mp3|wav)$ index.php [NC,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...