Убираем повторяющиеся слеши в конце url на 1C Битрикс

Например, если страница на вашем сайте по адресу https://your-site.ru/page-with-slashes/// будет открываться без проблем и адрес в строке браузера так и останется с кучей слешей на конце, то знайте что для поисковиков:

https://your-site.ru/page-with-slashes///
https://your-site.ru/page-with-slashes//
https://your-site.ru/page-with-slashes/
https://your-site.ru/page-with-slashes

Это четыре разные страницы. Хотя уверен, показывают они одно и тоже.

Исправляем недоразумение

Добавляем в файл .HTACCESS следующий код.


RewriteCond %{THE_REQUEST} // 
# Проверяем, повторяется ли слеш (//) более двух раз. 
RewriteRule .* /$0 [R=301,L] 
# Исключаем все лишние слеши.

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

Убрать несколько слешей в конце url на Битриксе

Если код выше не сработал, то скорее всего ваш сайт работает на Битриксе в связке FastCGI (Nginx + PHP-FPM), и правила в .HTACCESS для него пустой звук.

Можно настроить редиректы в файлах конфигурации Nginx, но доступ к ним очень редко дают да и то, если сайт крутится на выделенном сервере. А это для небольших проектов, как правило, экзотика и как “пушкой по воробьям”.

Поэтому делаем «костыль» — убираем слеши в URL с помощью PHP

Как это сработало у меня.

С помощью FTP заходим на сайт
Ищем /bitrix/header.php
В конце файла внутри синтаксиса PHP вставляем необходимый код
Готово! Редиректы заработают и повторяющиеся слеши исчезнут.


$subject = $_SERVER["REQUEST_URI"];
$pattern = '/\/\/+/';
$countReplace = 0;
$replaced_url = preg_replace($pattern, '/', $subject, -1, $countReplace);
if ($countReplace > 0)
LocalRedirect($replaced_url, false, '301 Moved Permanently');

< Возврат к списку

Контакты
ИП Мироненко О.В.
ИНН: 463310474220
ОГРНИП: 317774600094220
Пн-Вс круглосуточно
Работаем удалённо!
Задать вопрос

Нажимая на кнопку «Отправить», Вы даете согласие на обработку своих персональных данных и получение информационных сообщений.