使用似乎是相当标准的:
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
由于服务器托管了多个网站,我希望它们都使用相同的机制来记录这些错误(而不是必须在 PHP 中写入第二个日志文件,或者尝试让 PHP 对同一个文件进行 fopen/fread/fclose Apache 可能已经锁定)。