Il comportamento che riscontri e' corretto. Se Apache visualizza una pagina di errore, lo status non puo' essere 200 (altrimenti che errore e').
Puoi tentare di forzare lo status utilizzando un codice come il seguente (il funzionamento dipende dalla versione di Apache e dalla sua configurazione):
Se non vuoi che avvenga dovresti usare mod_rewrite al posto di ErrorDocument, ad esempio:Codice PHP:
header("HTTP/1.1 200 OK");
header("Status: 200 OK");
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /404.php [L]