Учитывая следующий сценарий:
<?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 у меня есть другая переменная GET с именем "cid", значение которой "favicon.ico" при использовании браузера Chrome версии 39.0.2171.71 м (но не 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)
Журнал Apache
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 в /favicon.ico
. Поместите туда пустой файл, вместо того, чтобы ваш скрипт обрабатывал этот URL-адрес, и вы должны быть настроены.
Лучший способ избежать этого - добавить пустой значок
<link rel="shortcut icon" href="#"/>
/favicon.ico
на /favicon.ico
если он не может получить тот из <link>
, IIRC.
index.php?cid=xxx
при доступе к example.com/xxx и / xxx не является файлом или каталогом. Добавление пустого файла решило проблему. Спасибо