Например, если страница на вашем сайте по адресу 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]
# Исключаем все лишние слеши.
Любые недоразумения с повторяющимися слешами будут редиректится в один, тем самым не плодя малополезные клоны одной страницы.
Если код выше не сработал, то скорее всего ваш сайт работает на Битриксе в связке 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');