Chrome favicon.ico GET request


Chrome favicon.ico GET request

给定以下脚本:

<?php
syslog(LOG_INFO,'$_GET: '.print_r($_GET,1));
var_dump($_GET);
?>

使用 http://www.example.com/testing/chrome.php?x=123 作为 URI 会产生预期的结果:

array(1) { ["x"]=> string(3) "123" } 

但是在查看系统日志和 Apache 访问日志时,我有另一个名为"cid"的 GET 变量,其值是"favicon.ico",当使用 Chrome 浏览器版本 39.0.2171.71 m(但不是 FF 或 IE)时。

是什么原因造成的,有没有办法防止我的服务器在每个请求中被命中两次?

系统日志

Dec  7 07:33:09 devserver test: $_GET: Array#012(#012    [x] => 123#012)
Dec  7 07:33:09 devserver test: $_GET: Array#012(#012    [cid] => favicon.ico#012)

阿帕奇日志

192.168.1.1 - Michael [07/Dec/2014:07:33:09 -0800] "GET /testing/chrome.php?x=123 HTTP/1.1" 200 36 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36"
192.168.1.1 - Michael [07/Dec/2014:07:33:09 -0800] "GET /favicon.ico HTTP/1.1" 200 46 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36"

是什么原因造成的,有没有办法防止我的服务器在每个请求中被命中两次?

Chrome 和其他浏览器将在 /favicon.ico 中查找您网站的图标。在那里放置一个空文件,而不是让您的脚本处理该 URL,您应该已经设置好了。

避免这种情况的最佳方法是添加一个空的图标

<link rel="shortcut icon" href="#" />