Acho que é isso que você quer: Emulando ErrorDocuments com Mod_Rewrite
Eu tenho um site Drupal que contém as regras mod_rewrite padrão abaixo
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteCond %{REQUEST_URI} !=/server-status
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Isso significa que as solicitações que correspondem a um arquivo ou diretório existente serão veiculadas diretamente, em vez de acionar o script index.php .
O problema é que as solicitações para arquivos não existentes não correspondem às regras acima e são redirecionadas para index.php , que inicializam o aplicativo Drupal inteiro e carregam desnecessariamente o site.
Para ignorar Drupal dos arquivos ausentes, criei as seguintes regras:
RewriteCond %{REQUEST_URI} (.jpg|.jpeg|.css|.js|.png)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* - [L,R=404]
Isso funciona, mas o problema é que os redirecionamentos 404 dependem de ErrorDocument 404 /index.php , o que acaba fazendo o bootstrapping Drupal .
Eu preciso manter ErrorDocument 404 /index.php porque Drupal é usado para exibir páginas 404 úteis para conteúdo dinâmico. Eu tentei definir vários ErrorDocument 404 (1 antes das minhas regras e 1 antes das regras do Drupal), mas apenas a última se aplica.
P: Como posso exibir uma página 404 vazia para solicitações de arquivos não existentes sem alterar a diretiva ErrorDocument 404 ?
Acho que é isso que você quer: Emulando ErrorDocuments com Mod_Rewrite
Use um código de status HTTP diferente?
Diga, 403 (Proibido) - o que importa o que o cliente (malicioso) vê?