我有以下规则,在访问公用文件夹时将所有流量重定向到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]
答案 0 :(得分:3)
我通常使用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]