Коллеги, объясните смысл кода:

\classes\ConnectionsSource.php

public static function logHttpReferer()
{
... [вырезал] ...

$source->id_connections = (int)($cookie->id_connections);
$source->request_uri = Tools::getHttpHost(false, false);
if (isset($_SERVER['REDIRECT_URL']))
$source->request_uri .= strval($_SERVER['REDIRECT_URL']);
elseif (isset($_SERVER['REQUEST_URI']))
$source->request_uri .= strval($_SERVER['REQUEST_URI']);
if (!Validate::isUrl($source->request_uri))
$source->request_uri = '';

return $source->add();
}


Код записывает входящие соединения в БД. Если задан REDIRECT_URL, то записывается он, иначе, если задан REQUEST_URI, то записывается он.

Теперь, если в магазине включить ЧПУ и зайти по ссылке http://shop/ЧПУ?param1=1

то в базу параметр записан не будет, так как переадресация с ЧПУ есть, и будет использоваться 'REDIRECT_URL', который query не содержит. Если же задать путь в нативном виде, то параметр запишется в базу.

Запись параметров в базу нужна для реферальной программы, это все помнят, я думаю.

Вопрос: для чего здесь используется 'REDIRECT_URL', и как разработчики планировали работу этого механизма?

P.S. Конечно, при включенных ЧПУ, можно использовать ссылки вида http://shop/ЧПУ/param, но включение переадресации на канонические URL положит этому конец.