@KASich

Как переадресовать на страницу элемента инфоблока по его id?

На сайте имеется Торговый каталог. Ссылки на товар выглядят так: домен/каталог/раздел/товар. Ссылки на товар периодически меняются. А хотелось бы установить ссылку на стороннем портале и чтобы она была жива максимально долго.

Хотелось бы указать ссылку с идентификатором элемента инфоблока (товаром), например домен/ссылки/ид-123, а по ней пользователя переадресует на актуальную страницу товара.
Наверно имеется готовое решение для подобной переадресации. Но я найти не смог.
Ну и в теории, как я представляю, имея указанную ссылку с ид, должно быть не сложно сделать редирект по актуальной ссылке.

Подскажите какое решение тут можно сделать
  • Вопрос задан
  • 169 просмотров
Решения вопроса 1
@KASich Автор вопроса
Решил вопрос самостоятельно. Создал отдельную страницу 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/");
}
?>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы