RewriteBase を使用して、request_uri が特定のディレクトリ内のファイルを指していないかどうかを確認する必要があります。
つまりURLは
http://localhost/~username/projectname/images/logo.gif
ファイルはディレクトリにあります
/home/username/public_html/projectname/www/images/logo.gif
.htacces は次のようになります。
RewriteEngine ON
RewriteBase /~username/projectname/
RewriteCondition /home/username/public_html/projectname/www%{REQUEST_URI} !-f
RewriteRule (.*) app/file-not-found.php?url=$0 [QSA,L]
残念ながら、RewriteCondition は次のように解釈されます。
/home/username/public_html/projectname/www/~username/projectname/images/logo.gif
としてではなく
/home/username/public_html/projectname/www/images/logo.gif
したがって、条件は常に true です :( .htaccess を正しく記述するには?