Lorsque php est exécuté en mode fastcgi, l'appel d'un fichier php inexistant va générer un message :
"No input file specified."
L'entête http est correcte :
HTTP/1.1 404 Date: Wed, 01 Aug 2007 10:22:03 GMT Server: Apache/1.3.37 (Unix) mod_fastcgi/mod_fastcgi-SNAP-0404142202 PHP/4.4.4 X-Powered-By: PHP/5.2.1 Transfer-Encoding: chunked Content-Type: text/html
Mais on peut souhaiter afficher une page d'erreur ou un message plus spécifique.
L'astuce consiste alors à utiliser la réécriture d'url en plaçant dans son .htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*\.php$ /404.html
ou 404.html est le fichier que l'on veut afficher.