我希望忽略或不记录"文件不存在"错误

0 php apache flash logging file

[2011年11月19日13:17:04] [错误] [客户端1.1.1.32]文件不存在:/var/www/vhosts/x.com/httpdocs/scores.asp

[2011年11月19日13:17:54] [错误] [客户端1.1.1.32]文件不存在:/var/www/vhosts/x.com/httpdocs/reqewrqwe.awwe

解决了谢谢

hak*_*kre 5

创建RewriteRule并返回一个空文件,以响应您要从日志中删除的URL:

RewriteRule scores\.asp$ - [L]
Run Code Online (Sandbox Code Playgroud)

如果您没有任何URL模式,并且想要阻止所有不存在的文件,请添加RewriteCond:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [L]
Run Code Online (Sandbox Code Playgroud)

或者只是使用更新的apache:

FallbackResource /index.php
Run Code Online (Sandbox Code Playgroud)

然后index.php给出404状态响应:

<?php
header("Status: 404 Not Found", 1, 404);
Run Code Online (Sandbox Code Playgroud)

index.php文件必须存在,否则(对于RewriteRule)这将创建一个无限循环.

或者,这可能有效(并且不需要index.php文件):

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ - [R=404,L]
Run Code Online (Sandbox Code Playgroud)

请参阅:Apache2:如何避免将某些丢失的文件记录到error.log中