かなり標準的と思われるものを使用する:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php [L]
すべてのリクエストは、処理するためにindex.phpファイルに送られます(Apacheがディスク上のファイルをすでに認識している場合を除く)。
しかし、スクリプトが要求されたURLが存在しないと判断した場合(404)、これをApache ErrorLogに記録するにはどうすればよいですか?
スクリプトは404ヘッダーで返されます。
HTTP/1.1 404 Not Found
ただし、エラーログは空のままですが、アクセスログには404が表示されます。
192.168.2.2 - - [13/Aug/2012:10:39:35 +0100] "GET /404 HTTP/1.1" 404 32958
サーバーは複数のWebサイトをホストしているので、これらのエラーを記録するためにすべて同じメカニズムを使用するようにします(PHPで2番目のログファイルに書き込む必要はなく、PHPに同じファイルをfopen / fread /fcloseさせようとするのではありません)そのApacheはすでにロックされている可能性があります)。