Многократный слеш

Опубликовано: 13 Июл 2015

Modx действительно лучше всех популярных cms в том числе и по части возможностей для СЕО оптимизации.
Но, как то раз, заказчик нашел  неприятную вещь.
В урле может присутствовать несколько лишних слешей
Как пример

my-site.ua///page////

Решение,  для Рево
1) создали плагин (или в существующем плагине добавим событие).
2) Выставили/добавили в системных событиях — OnWebPageInit
3) Сам код

switch ($modx->event->name)
{
case 'OnWebPageInit':
        if (stristr($_SERVER['REQUEST_URI'], '//'))
        {
                $g = preg_replace("|[//\s]+|is", "/", $_SERVER['REQUEST_URI']);
                $modx->sendRedirect($g);
        }
        break;
}

Если у вас плагин на одно событие, то switch можно упустить.
Есть вариант, не убирать слеши, а отдавать 404.
Тогда плагин будет такой.

if (stristr($_SERVER['REQUEST_URI'], '//'))
{
        $modx->sendErrorPage();
}

Комментарии (0)


Оставить комментарий




Разрешённые теги: <b><i><br>Добавить новый комментарий: