Как сделать редирект с index php на корень битрикс
Разбираем альтернативный способ перенаправления на другую страницу, с указанием статуса.
LocalRedirect со статусом 301 в Битриксе
LocalRedirect — очень старая функция, она существует еще с 3 версии Битрикса . Давайте разберем, как она записывается, и что при её помощи можно делать.
false — Необязательный. Значение true позволяет пропустить проверку модуля безопасности на фишинг.
Редирект можно, а в некоторых случаях даже нужно, делать через файл .htaccess, который лежит в корне сайта, но сегодня не об этом.
Яркий пример, компонент постраничной навигации. В очень многих случаях system.pagenavigation — делает редирект с первой страницы в основной раздел именно с этим статусом.
Где еще может пригодится данная функция? Когда htaccess бессилен написать сложную логику переходов, её можно написать при помощи LocalRedirect, правильно передав статус, используя PHP и API 1С-Битрикс.
автор: Dmitriy
- Создание сайтов на 1С-Битрикс любой сложности
- Вёрстка макетов Figma, Photoshop, Zeplin
- Поддержка проектов на Битриксе
- Разработка нового функционала для сайта
- Парсинг данных
- Выгрузка \ Загрузка файлов в формате XML, YML, XLS, XLSX, CSV, JSON
- Интеграция по API со сторонними сервисами
и многое другое
При установке 1С-Битрикс в корне сайта создается файл .htaccess, который предназначен, в том числе, для корректной работы ЧПУ. Но по-умолчанию он не удовлетворяет всем требованиям типового проекта. В этой статье поделимся полезным примером настройки файла .htaccess для 1С-Битрикс.
Найдите файл .htaccess в корневом каталоге вашего сайта через файловый менеджер. Если файла нет, скорее всего у вашего файлового менеджера отключено отображение скрытых файлов. В файле вы найдете такую запись:
Именно эти строки отвечают за корректную работу ЧПУ 1С-Битрикс. Здесь и нужно вносить изменения, добавляя правила после строки RewriteEngine On.
1. Добавление / в конце для перенаправления страниц элементов инфоблока вида /catalog/element на /catalog/element/ :
Ситуация:
Сделали новый сайт для компании вместо старого. Осталось заменить старый на новый. Но обычно забывают про наращённую ссылочную массу старым сайтом. Если раньше yandex проиндексировал страницу о компании по адресу /company/ , то теперь /o-kompanii/ . При переходе по старой ссылке новый сайт вернет 404 ошибку.
Составляем файл в excel, где первая колонка старые адреса сайта, во второй новые.
Как реализовать редирект со старых страниц на новые в 1с-Битрикс.
Логично, что, если человек перейдет на новый сайт по старым ссылкам, он получит 404 ошибку.
Проверьте, что в настройках комплексного компонента каталога->Настройки 404 ошибки, стоит устанавливать статус 404. А в настройках главного модуля->Системные ошибки должна отсутствовать галочка Посылать в заголовке статус 200 на 404 ошибку.
Находим в корне сайта файл 404.php, который создается по умолчанию. Его нужно привести к такому виду:
Создаем директорию /redirect/ с двумя файлами old и new. В первый копируем все ссылке из первой колонки excel файла, а во второй файл из второй колонки. Важно, что бы сохранился одинаковый порядок и соответствие, т.е. например 3-ья ссылка из файла new должна соответствовать 3-ей ссылке из old.
Теперь разберем файл 404.php
//old файл со ссылками старого сайта
//new файл со ссылками нового сайта
//циклом проходимся по ссылкам старого сайта
//если ссылка по которой перешли на сайт, совпадает с одной из файла old, то устанавливаем код странице 301(что означает перемещен навсегда), далее идет переадресация на страницу, которая соответствует старой ссылке на новом сайте(ссылке в файле new)
Exit – прекращение выполнения скрипта.
Если в файле old не нашлось текущей страницы, то страница вернет 404 ошибку.
Редирект с адресов с параметрами.
В этой ситуации можно использовать тоже самое решение, только код нужно разместить в главном шаблоне сайта:
Файл new будет содержать ссылки, как и в предыдущем примере, а в old значения, которые может принимать id.
Если же вам нужно визуальное управление редиректами, рекомендую установить модуль Редирект Мастер.
В нем можно удобно создать редиректы через админку, загрузить их из Excel, сгенерировать редиректы при изменения ЧПУ или настроить их автоматическое создание.
Модуль доступен в Маркетплейс 1С-Битрикс.
Правила приведены для сервера Apache. В правилах: % — обозначает фрагмент URL-адреса после знака вопроса (задания значений CGI-параметров). Срабатывание того или иного правила для редиректа определяется тем, попадает URL-адрес страницы под это правило или нет.
Ниже даны наиболее используемые правила настройки файла .htaccess для 301-редиректа. Лучше размещать все правила после двух строк:
301-редирект с домена без WWW на домен с WWW префиксом
С домена с WWW префиксом на без
Стандартная переадресация с одной статической страницы на другую
В ряде случаев полезна переадресация через RewriteRule
301-редирект для страницы с GET параметрами
Если один (или несколько) из GET параметров не задан(ы) или может иметь произвольное значение (в нашем примере это SECTION_ID), можно использовать следующий код:
301-редирект со страницы без заданного параметра в корень
301-редирект для конкретного файла, а не целой папки
Как быть с доменами в зоне РФ?
301-редирект с домена на домен
И для домена в зоне РФ:
Настройка переадресации на папки со слешем в конце /
Настройка переадресации на папки без слеша (убираем слеш в конце)
301-редирект с домена на папку на другом домене
Редирект со всех файлов домена, кроме папки администратора bitrix
Редирект всех файлов в папке на заданный файл
Редирект файлов из заданной папки кроме, определенного файла
Смена страниц с html расширения на php расширение
Перенос картинок / изображений из папки /img/ на поддомен
Задание типа индексной страницы (php, html, htm и другие)
Указывается порядок загрузки типов индексного файла, лежащих в корне каталога.
Редирект с индексной страницы php на саму папку (корень)
Для всех индексных страниц на сайте:
Редирект с поддомена на основной домен второго уровня
Редирект для заданного файла в различных директориях (папках)
Если требуется создать ЧПУ-копию какой-либо динамической страницы, то это можно также реализовать с помощью .htaccess.
Код позволяет создать копию страницы с относительным адресом /studio/news/detail.php?ID=230354&PAGEN_2=11 по адресу /testovyi/test/
Настройка 403 кода ответа сервера для реф-спама (301-редирект для спама по REFERER) для списка ресурсов
Указание пути к файлу 404 ошибки с помощью .htaccess
Внимание, важно чтобы код ответа сервера для 404 ошибки был именно 404. Путь к файлу указывается с помощью следующей строчки:
! Все правила выполняются в прямом порядке их следования в файле .htaccess и правило, написанное позже, и будет выполняться позже.
! Для сайтов, на которых используется не сервер Apache, аналогичные 301-редиректы легко настраиваются с помощью PHP.
! Оптимально настраивать все редиректы сразу на конечную страницу (без промежуточных перенаправлений, в один шаг) это улучшает их восприятие со стороны поисковых систем и пользователей.
Если требуется настроить редирект только для некоторых USER_AGENT’ов, а не для всех пользователей
Если требуется настроить редирект для всех поисковых роботов (представлен список их USER_AGENT’ов)
Несколько простых примеров
Синтаксис для регулярных выражений
Убираем все GET-параметры после знака вопроса (?)
Располагать после: RewriteBase /
ПАМЯТКА ПО ИСПОЛЬЗУЕМЫМ СИМВОЛАМ И ОБОЗНАЧЕНИЯМ
Строчка RewriteCond — условие выполнения правила RewriteRule. Если условие выполняется, то срабатывает редирект. Правила могут задаваться с помощью регулярных выражений.
Спецсимволы, используемые в правилах и их значения.
Модификаторы используются после обычных, спецсимволов или их групп и позволяют расширить возможности шаблонов для срабатывания правил.
- ? — символ повторяется 0 или 1 раз.
- + — повторяется от 1 до 65536 раз.
- * — повторяется от 0 до 65536 раз.
Флаги, задают доп. опции для используемого правила. Перечисляются в квадратных скобках через запятую, скажем [NC] или [R=301,L].
Читайте также: