Как сделать редирект в битриксе
Перейти к содержимому

Как сделать редирект в битриксе

  • автор:

Как сделать 301 редирект [1С-Битрикс]

Рассказываем, как сделать 301 редирект в Битриксе, редирект с http на https, редирект с www на без www.

Редиректы — это перенаправление посетителей сайта с одной на другую веб-страницу. Переадресация может вести на страницы того же сайта или страницы другого.

Основные виды редиректов:

301 редирект используется, когда страница или сайт навсегда переезжает на другой URL. Такой редирект сообщает, что старый URL можно удалить из поисковой выдачи.

302 редирект чаще используется при разработке сайта, когда владелец сайта временно ставит заглушку на страницы. С таким редиректом адреса страниц не пропадают из поисковой выдачи.

303 и 307 редиректы с временным перенаправлением, аналоги 302.

Meta refresh — принудительная переадресация, негативно влияющая на SEO.

Редиректы незаменимы в работе сайта на 1С-Битрикс, когда меняются структура, разделы, адреса страниц.

301 редирект Битрикс

Чтобы сделать постраничный 301-редирект, нужно изменить файл «.htaccess».

В меню слева выберите Главное (1) → Менеджер файлов (2) и откройте «.htaccess», кликнув по нему 2 раза.

Добавьте в файл строку:

  • /cat/page.php — старый относительный адрес страницы, с которой делается перенаправление; — полный новый адрес страницы, на которую делается 301-перенаправление.

301 редирект на другой сайт

Можно выполнить как через панель управления, так и изменив файл «.htaccess». Рассмотрим второй вариант.

Добавьте следующие строки:

  • old-site.ru — домен, с которого происходит редирект;
  • new-site.ru — домен, на который происходит редирект.

На скриншоте ниже представлен пример:

301 редирект с домена с WWW на домен без WWW

Для реализации перенаправления добавьте в «.htaccess» непосредственно после строки «RewriteEngine On»:

301 редирект с домена без WWW на домен с WWW

Для реализации перенаправления добавьте в «.htaccess» непосредственно после строки «RewriteEngine On»:

301 редирект с https:// на http://

Можно выполнить как через панель управления, так и изменив файл «.htaccess». Рассмотрим второй вариант.

В файле «.htaccess» вашего сайта добавьте следующие строки после «RewriteEngine On»:

Если в дальнейшем вы захотите вернутся обратно на HTTP и отключить HTTPS, удалите эти строки.

Обработка адресов

Обработка адресов (UrlRewrite) применяется для того, чтобы скрипт мог отвечать не только по своему физическому, но и по любому другому указаному адресу. Например, можно задать настройки обработки адресов, чтобы скрипт в файле /fld/c.php, отвечающий по адресу

отвечал также по адресу

Адрес, по которому будет отвечать скрипт, не должен физически существовать на сервере. Если такой адрес физически существует, то будет вызван скрипт по этому адресу. Система обработки адресов запущена в этом случае не будет.

Правила обработки

Правила обработки адресов настраиваются отдельно для каждого сайта и хранятся в корне сайта в файле urlrewrite.php. Файл содержит массив $arUrlRewrite, каждая запись которого является правилом обработки адреса. Файл urlrewrite.php имеет следующий вид:

Каждое правило должно содержать уникальное в рамках сайта условие выполнения правила. Условие выполнения записывается в ключ "CONDITION" массива и является шаблоном Perl-совместимого регулярного выражения. Например, условие:

указывает, что данное правило должно применяться для всех адресов, которые начинаются с подстрок вида:

Правило может содержать адрес физически существующего скрипта, который будет подключен при выполнении условия. Этот адрес записывается в ключ "PATH". Например, если в системе обработки адресов зарегистрировано правило:

и пользователь запросил страницу:

которая физически не существует, то система обработки адресов подключит скрипт:

Правило может содержать правило замены, которое записывается в ключ "RULE". Если правило замены установлено, то адрес реально существующего подключаемого скрипта формируется заменой регулярным варажением условия выполнения (шаблона выражения) на конкатенацию физического пути (ключ "PATH") и правила замены (ключ "RULE"). Например, если в системе обработки адресов зарегистрировано правило:

и пользователем запрошена страница:

то для формирования адреса скрипта, который будет подключен, выполнится код:

и будет подключен скрипт:

Если в системе обработки адресов зарегистрировано правило:

и пользователем запрошена страница:

то для формирования адреса скрипта, который будет подключен, выполнится код:

и будет подключен скрипт:

Правило может содержать имя компонента, который создал это правило. Это имя записывается в ключ "ID". При автоматическом пересоздании файла правил urlrewrite.php с помощью средств административной части сайта пересоздаются только правила, у которых заполнен ключ "ID". Эти правила пересоздаются на основании анализа физических файлов в папке сайта. Правила с пустым ключом "ID" при автоматическом пересоздании файла правил не изменяются.

Подключение системы обработки адресов

Перед началом использования система обработки адресов должна быть подключена на сайте. Для этого необходимо:

  • если у вас на веб-сервере настроена обработка ошибки 404 (например, для Apache установлена директива ErrorDocument 404 /404.php ), то вы должны изменить файл /404.php, вставив в самое начало файла команду:
  • если вы для Apache используете модуль mod_rewrite, то в его настройках вы можете указать (например, как в штатной установке в файле .htaccess):

Примеры правил и условий для модуля mod_rewrite

  • Настройка переадресации (301 редирект) на папки со слешем ( / ) в конце:
  • Переадресация (301 редирект) с индексной страницы index.php на саму папку (корень) для всех страниц сайта:

Поддержка компонентов 2.0

При добавлении на страницу компонента с поддержкой ЧПУ ("человеко-понятный URL") (если файл сохраняется с помощью API), автоматически создаётся правило обработки адреса. Если страница создаётся не с помощью API, а, например, записывается через FTP, то необходимо выполнить пересоздание правил (кнопка на панели инструментов на странице настройки правил обработки адресов).

Поддержка ЧПУ включается в компоненте с помощью предопределённого входного параметра SEF_MODE. При этом в предопределённом входном параметре SEF_FOLDER устанавливается папка, в которой работает компонент. Папка может быть виртуальной (т.е. физически может не существовать). При сохранении страницы с размещённым на ней компонентом, переключенным в режим ЧПУ (параметр SEF_MODE равен Y), через стандартный интерфейс правило обработки адресов создаётся следующим образом: в ключ условия применения шаблона ("CONDITION") записывается регулярное выражение, полученое из папки в параметре SEF_FOLDER, в ключ "ID" записывается имя компонента, в ключ пути ("PATH") записывается физический адрес страницы.

Битрикс – как сделать редирект 301

Разбираем альтернативный способ перенаправления на другую страницу, с указанием статуса.

LocalRedirect со статусом 301 в Битриксе

LocalRedirect – очень старая функция, она существует еще с 3 версии Битрикса . Давайте разберем, как она записывается, и что при её помощи можно делать.

$arResult[“sUrlPath”] – первый параметр, переменная – собственно сам URL, на который мы будем переходить, или, другими словами, делать редирект.

false – Необязательный. Значение true позволяет пропустить проверку модуля безопасности на фишинг.

“301 Moved permanently” – Необязательный. Заголовок ответа HTTP, он же код (статус).

Редирект можно, а в некоторых случаях даже нужно, делать через файл .htaccess, который лежит в корне сайта, но сегодня не об этом.

Вы спросите, а в чем же тогда смысл этой статьи? А смысл друзья в том, что стандартно у нас 3-ий параметр передается как $status=”302 Found”, что очень может испортить всю картину при оптимизации сайта, не говоря уже про “сеошников” (специалистам, которые занимаются SEO).

Яркий пример, компонент постраничной навигации. В очень многих случаях system.pagenavigation – делает редирект с первой страницы в основной раздел именно с этим статусом.

Где еще может пригодится данная функция? Когда htaccess бессилен написать сложную логику переходов, её можно написать при помощи LocalRedirect, правильно передав статус, используя PHP и API 1С-Битрикс.

Настройка файла .htaccess для 1C Bitrix CMS

Так же как и в любой другой CMS файл .htaccess в 1С Битриксе находиться в корневой ( главной ) директории сайта. Есть нюанс — увидеть данный файл через Административный интерфейс в разделе Структура сайтаФайлы и папки
Если файл .htaccess отсутствует вовсе, тогда его необходимо создать вручную и разместить стандартное содержимое файла для Битрикс.

4.jpg

Стандартное содержимое htaccess для 1С Битрикс 18 ( все редакции )

Настройка редиректов в 1С Битрикс

Настройка редиректа с www на без-www в 1С Битрикс

Если вы хотите, чтобы при обращении к вашему сайту по адресу www.ваш-сайт.ru срабатывало перенаправление на ваш-сайт.ru, нужно прописать в файл .htaccess внутри секции mod_rewrite.c следующее правило:

Настройка редиректа с http на https в 1С Битрикс

Если вы на сайте решили подключить SSL сертификат, то вам будет обходимо настроить редирект с версии сайта на обычном протоколе http на защищённый протокол https, в противном случаи вы получите дубли всех страниц сайта. Для настройки редиректа на https нужно добавить в htaccess следующий код:

Избавляемся от дублей index.php

По умолчанию в 1С Битрикс все страницы доступны как по их ЧПУ так и по адресам с index.php на конце. Т.е если ввести страницу https://ваш-сайт.ру/ и https://ваш-сайт.ру/index.php то по обоим адресам будет доступна одна и та-же страница. От таких дублей нужно избавляться. Для этого разместим в htaccess следующий код:

Убираем повторяющиеся слэши в конце адреса

Чтобы убрать дублирующиеся слэши в конце url необходимо в htaccess разместить правило

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *