Разбираем альтернативный способ перенаправления на другую страницу, с указанием статуса.
LocalRedirect со статусом 301 в Битриксе
LocalRedirect — очень старая функция, она существует еще с 3 версии Битрикса . Давайте разберем, как она записывается, и что при её помощи можно делать.
LocalRedirect($arResult["sUrlPath"], false, "301 Moved permanently");
$arResult[«sUrlPath»] — первый параметр, переменная — собственно сам URL, на который мы будем переходить, или, другими словами, делать редирект.
false — Необязательный. Значение true позволяет пропустить проверку модуля безопасности на фишинг.
«301 Moved permanently» — Необязательный. Заголовок ответа HTTP, он же код (статус).
Редирект можно, а в некоторых случаях даже нужно, делать через файл .htaccess, который лежит в корне сайта, но сегодня не об этом.
Вы спросите, а в чем же тогда смысл этой статьи? А смысл друзья в том, что стандартно у нас 3-ий параметр передается как $status=»302 Found», что очень может испортить всю картину при оптимизации сайта, не говоря уже про «сеошников» (специалистам, которые занимаются SEO).
Яркий пример, компонент постраничной навигации. В очень многих случаях system.pagenavigation — делает редирект с первой страницы в основной раздел именно с этим статусом.
Где еще может пригодится данная функция? Когда htaccess бессилен написать сложную логику переходов, её можно написать при помощи LocalRedirect, правильно передав статус, используя PHP и API 1С-Битрикс.