В файле .htaccess правило обработки для множественных слешей

В файле .htaccess нужно добавить правило обработки для множественных слешей. Кто-то сталкивался с этой проблемой? Нашла похожую тему, но ответ так никто и не дал как это сделать.

3 ответа

  • 3

    Очевидный ответ:

        RewriteCond %{REQUEST_URI} ^(.*?)\/{2,}(.*?)$
        RewriteRule . %1/%2 [L,R=301]
        RewriteCond %{THE_REQUEST} //
        RewriteRule .* /$0 [R=301,L]

  • 1
    replicant 5 мая 2023 10:37 #

    В идеале нужен пример или лучше несколько примеров подобных мусорных адресов с реального проекта (можно без указания домена), т.к. сортов и видов мусора может быть много.

    Хотя вообще странно. У себя ничего подобного в .htaccess не делал, но множественные слеши, если среди них нет ещё каких-то символов типа знака вопроса ?, нормально убираются и редирект исполняется сам. Особо не вникал почему так, но мне всегда казалось, что WA на эту тему умеет что-то делать сам в такой ситуации.


    Правда есть ещё одна интересная особенность умолчального редиректа. Допустим есть плоские URL для товаров и категорий, и, когда мы попробуем такое,

    https://site.ru/category/category-name/////

    то будем перенаправлены на уровень выше.

    https://site.ru/category/ - именно поэтому и не только поэтому многие делают на этом адресе страницу каталога.


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


    А вот запрос вида

    https://site.ru/category/category-name/?/////

    по-умолчанию уже не отрабатывается никак, а просто открывается категорийная страница как есть т.к. вклинился знак вопроса. Знаков может быть несколько и положение их среди вереницы слешей может быть в любом месте, например так //?////??////?////, значения это не имеет, откроется как есть.

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

    -----------------------

    Намного более интересен вопрос о том почему вообще и откуда именно в индекс попадают многослешевые адреса?

    Если специально не моделировать, то мне такие url никогда не встречались в индексе моих проектов.


    • +2

      и не встретятся, это seo-гуру тестируют и показывают что а вот видите. Но попадается иногда в задачах, чтобы не тратить время на объяснения, что сие лабораторная ситуация просто делаем и все.

Эта тема в архиве. Добавление комментариев к ней отключено.