При установке 1С-Битрикс в корне сайта создается файл .htaccess, который предназначен, в том числе, для корректной работы ЧПУ. Но по-умолчанию он не удовлетворяет всем требованиям типового проекта. В этой статье поделимся полезным примером настройки файла .htaccess для 1С-Битрикс.
Найдите файл .htaccess в корневом каталоге вашего сайта через файловый менеджер. Если файла нет, скорее всего у вашего файлового менеджера отключено отображение скрытых файлов. В файле вы найдете такую запись:
Именно эти строки отвечают за корректную работу ЧПУ 1С-Битрикс. Здесь и нужно вносить изменения, добавляя правила после строки RewriteEngine On.
1. Добавление / в конце для перенаправления страниц элементов инфоблока вида /catalog/element на /catalog/element/ :
2. Перенаправление домена с www. на домен без www.
3. Структура 1С-Битрикс включает в себя статичные страницы index.php, что влечет за собой открытие таких страниц по адресу /page/ и /page/index.php , в итоге получаем дубли страниц на сайте. Чтобы этого избежать, добавляем:
4. Помимо этого можно добавить редирект на защищенный протокол https:
Нам будет приятно
Еще интересное в блоге
Информация о технической поддержке this_site_support.php
Сортировка по возрастанию с пустыми значениями в конце
Будем рады работать именно с вами
Политика конфиденциальности персональных данных
- Общие положения.
- Настоящая Политика конфиденциальности персональных данных (далее — Политика) действует в отношении всех персональных данных, которую компания Keengo (далее – Компания), может получить от пользователя (лица, заполнившего форму обратной связи, использующего другие сервисы официального сайта keengo.ru (далее – Сайт)), в частности в ходе: отправки отзывов или вопросов, заказа услуг, участия в рекламных и/или маркетинговых кампаниях или акциях и/или ином взаимодействии (далее – Услуги).
- Заполняя форму обратной связи и нажимая кнопку «Согласен/на», расположенную на странице Сайта, на которой размещена форма обратной связи, а равно указывая свои персональные данные при использовании других сервисов Сайта, пользователь выражает согласие с настоящей Политикой и указанными в ней условиями обработки и передачи его персональных данных. Согласие Пользователя на предоставление, обработку и передачу его Персональных данных Компании в соответствии с Политикой является полным и безусловным.
- Посетителям Сайта следует воздержаться от заполнения формы и/или от использования других сервисов Сайта в случае несогласия (полного или частичного) с Политикой, а равно несогласия предоставить персональные данные.
- Согласие, даваемое пользователем, включает в себя согласие на сбор, систематизацию, накопление, хранение, уточнение (обновление, изменение), использование, занесение в базы данных (в том числе электронные) Компании, передачу внутри Компании другим отделам и подразделениям или поставщику услуг, обязующегося выполнять условия договора о защите персональных данных, в целях рассылки информационных материалов и/или в рекламных целях (в том числе рассылку приглашений на мероприятия, проводимые/организованные Компанией), трансграничную передачу, блокирование, обезличивание, уничтожение персональных данных.
- Согласие, даваемое пользователем, распространяется на следующие персональные данные: фамилия, имя, отчество, адрес электронной почты, должность, наименование организации, в которой работает пользователь, контактный телефон.
- Срок действия согласия пользователя является неограниченным, однако, пользователь вправе в любой момент отозвать настоящее согласие путём направления письменного уведомления на адрес электронной почты: info@keengo.ru, с пометкой «отзыв согласия на обработку персональных данных».
Keengo · Web Design & Development
© 2010–2019 Все права защищены
Убирать из URL-адресов (ссылок) index.php нужно обязательно, т.к. это все дубли страниц, которые создают проблем в плане SEO и продвижения сайта.
Например, вот эти две страницы на вашем сайте отдают один и тот же контент, что для ПС есть дубль:
Настройка индексной страницы в 1С Битрикс
В Битриксе поможет нам в этом штатная константа BX_DISABLE_INDEX_PAGE, ее описание из официальной документации:
Может принимать значение true/false. Константа регулирует значение по умолчанию для параметра get_index_page функций GetPagePath(), CMain::GetCurPage(), CMain::GetCurPageParam().
Параметр get_index_page указывает, нужно ли для индексной страницы раздела возвращать путь, заканчивающийся на "index.php". Если значение параметра равно true, то возвращается путь с "index.php", иначе — путь, заканчивающийся на "/". Параметр имеет значение, обратное значению константы.
В этом файле
/bitrix/php_interface/dbconn.php
Добавьте эту константу, в любом месте
define("BX_DISABLE_INDEX_PAGE", true);
Все, обновите страницу в публичной части и проверяйте, во всех ссылках должна исчезнуть индексная страница index.php
Если не исчезли, пробуйте сбросить весь кэш, особенно композитный, если не помогло, то могут мешать хитрые следы разрабов или сеошников например в файле urlrewrite.php или еще хоть где.
Так мы исправили проблему в адресах сайта, но это еще не все, если вы напрямую откроете страницу
/catalog/index.php
то она также откроется, никуда не денется, на самом сервере она есть, потому что в предыдущем примере мы убрали индексную страницу только из адресов (ссылок) Битрикса, а сами страницы напрямую открываются по правилам сервера, на сервере тут сложней, разными способами можно избавляться от этого, хоть в знаменитом файле .htaccess хоть в конфигах самого nginx или apache2
301 редирект с /index.php на / в .htaccess
В корне сайта находим файл .htaccess и добавляем в нем запись где-то после RewriteEngine On
Пример для сайта работающего на защищенном протоколе https:// с 301 редиректом с www на без wwww , только замените в нем адрес example.com на свой, например tuning-soft.ru
301 редирект с /index.php на / в nginx
На каждом сервере пути до конфигов могут быть совершенно разные, но в панели VESTA по умолчанию конфиги в папке пользователя по этому пути
/home/user1254/conf/web/snginx.conf
Для https|ssl это файл snginx.conf , а для http это файл nginx.conf где в секции server <. >примерно после строки set $php_sock 127.0.0.1:9018; необходимо добавить код ниже и заменить example.com
Обязательно после изменений конфига nginx его необходимо перезагрузить, делается это, например, в PuTTY по SSH так:
#service nginx restart
Убираем /index.php с 301 редиректом
Каждую страницу которая заканчивается на / можно открыть и через /index.php. Думаю, каждый более-менее уважаемый вебмастер это знает и вдаваться в подробности не стоит. Мы думаем, что это не сильная проблема как для людей, так и для поисковых роботов. Но все же, что-бы было на 100% правильно, давайте сделаем так, что если страница открывается через слэш, то ее нельзя было открыть через /index.php или /index.html. Естественно, везде должен отадаваться 301 редирект. чтобы ранее проставленные ссылки не теряли свой вес.
Результат работы скрипта
Как забирать окончание /index.php в Битриксе
Битрикс самая популярная коммерческая CMS, да и мы ее используем, поэтому давайте рассмотрим пример на ней. Многие вебмастера пытаются решить подобную задачу через php, записав код в init.php. но тут возникает 2 ошибки:
- Редирект не будет работать при композите, потому что композит не грузит ядро битрикса;
- Большая нагрузка на сервер, т.к. запускается Apache для редиректа.
Вообщем, правильно делать такой редирект исключительно через.htaccess файл. Откроем файл .htaccess, который лежит в корне битрикса и просто добавим 2 строчки кода. RewriteBase / нужно дописать после RewriteEngine On, а в конец всех правил добавим RewriteRule ^(.*)index.php$ $1 [R=301,L]. Естественно, все в конструкции должно лежать. Код:
Забирать окончание /index.php через .htaccess
Если у вас не битрикс, то в корне сайта в .htaccess файле (если его нет, то создайте) нужно добавить такой код: