我想防止 Apache 为某些经常请求的不相关的不存在文件记录“文件不存在”错误,例如“apple-touch-icon-120x120.png”。这些日志条目使我的日志杂乱无章,很难看到“真正的”问题。这就是我想出的:
RewriteCond %{REQUEST_URI} ^/apple-touch-icon(-\d+x\d+)?(-precomposed)?\.png$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^ - [redirect=404]
想法:如果请求的文件不是常规文件并且也不是符号链接,则 RewriteRule 将导致错误不被记录。那种作品。
现在我面临以下问题:如果我实际上创建了一个名为“apple-touch-icon-120x120.png”的符号链接,那么我的 RewriteRule 仍然会触发并且我得到 404。没有规则或者当我将文件设为常规文件时文件而不是符号链接,则该文件已正确提供。我认为通过使用!-l标志,只有在请求的文件不是常规文件并且它也不是符号链接时,我才能触发我的规则。但这似乎不起作用...
我在 Apache 的错误日志中没有看到任何可疑之处。我在这里可能做错了什么?