Решил вопрос самостоятельно. Создал отдельную страницу site.ru/redirect/, и добавил нижеуказанный код. Теперь ссылка site.ru/redirect/?id=123 будет перенаправлять на товар с id 123. если такого товара не найдено, то перенаправляет на site.ru/404/.
Для IBLOCK_ID вместо 17 устанавливаем свой id инфоблока.
<?
$idItem = $_REQUEST['id'];
if (!empty($idItem)){
$res = CIBlockElement::GetList(array(), array('ID'=>$idItem, 'IBLOCK_ID'=>'17'), false, false, array('DETAIL_PAGE_URL'));
if ($arElement = $res->GetNext())
{
echo "<pre>"; print_r($arElement); echo "</pre>";
LocalRedirect($arElement[DETAIL_PAGE_URL]);
} else {
LocalRedirect("/404/");
}
} else {
LocalRedirect("/404/");
}
?>