Al parecer el ErrorDocument en htaccess no se le puede pasar parametros, seria algo como:
Código:
ErrorDocument 404 /404.php?$1 [L]
No lo e probado, quiza funcione. Otra alternativa es configurar todo lo que existe al index.php y lo que no a 404.php, algo asi:
Código:
Options -MultiViews
RewriteEngine on
#
RewriteRule ^([a-zA-Z0-9]+)$ http://www.example.com/$1.php [NC,R=301,L]
RewriteRule ^(.+)(/¦\.s?html?¦\.asp)$ http://www.example.com/$1.php [NC,R=301,L]
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /404_not_found.php?$1 [L]
Lo último que se me ocurre es que por PHP hagas el redireccionamiento al 404.php a travez de:
Código PHP:
header("Location: 404.php" . $_SERVER['QUERY_STRING'] );
Avisame como te va.