lighttpd 配置和重写/禁用访问 favicon.ico 的尝试

lighttpd 配置和重写/禁用访问 favicon.ico 的尝试

我在构建一个应用程序时让 lighttpd 和 apache 协同工作。lighty 提供静态内容。但是,每次请求静态资产时,我都会not found: favicon.ico在日志中看到一条消息。我添加了以下 URL 重写:

url.rewrite-once = (
    "^/favicon.ico$" => "/assets/images/favicon.png"
)

但无济于事;仍然收到消息。有什么想法吗?

答案1

我想为您的情况提出一个可能更简单、更好的解决方案。

为什么不将 PNG 文件转换为 ICO?事实上,icotool 似乎部分就是为此目的而存在的。以下代码片段摘自手册页:

icotool -c -o favicon.ico mysite_32x32.png mysite_64x64.png

还有命令行工具,例如 ImageMagick,如果您需要自动调整图像大小以实现此目的。

答案2

您好,我假设您的重写看起来更像这样,并且您尝试同时为多个域重写。

$HTTP["host"] =~ "^hostname.com$" {
    url.rewrite-once = (
    "^/favicon.ico$" => "/assets/images/favicon.png")
}

我唯一能想到的另一个原因是 mod_rewrite 没有启用

服务器.模块 = (
                  “mod_rewrite”,

您的重写一次规则对我来说看起来很好,所以我猜测它不在您的配置文件中的正确位置。

答案3

如果 Web 浏览器请求 .ico 文件,您无论如何都不应该转而向其提供 .png 文件。如果您的服务器上不存在 favicon.ico,则向浏览器提供 404 错误是适当的。如果您想将这些错误消息从日志文件中移除,那就是另一个问题了。

相关内容