Знак вопроса в nginx

Всем привет!
Столкнулся с такой проблемой:
Недруги проставляют ссылки вида site.com/realurl?xxx=yyy на мой сайт.

При таком запросе отдается страница site.com/realurl с кодом 200. В итоге в индексе Яндекса на какое-то время появляется куча мусорных страниц с одинаковым контентом. Да, я запрещаю их в robots, ставлю правильный canonical, но они всё равно индексируются на день-два, т.к. эти директивы носят рекомендательный характер для поисковиков. Параметры xxx=yyy всё время разные. Позиции вроде не проседают, но это напрягает.

На сервере только nginx. По идее надо запретить в nginx запросы со знаком вопроса. Я не силён в nginx, но погуглив нашел пару решений:
if ($is_args) {
           return 404;
       }
или
if ($request_uri ~ [\?]) {
            return 404;
        }
Однако, тут же выяснилось две проблемы:
1. Админка не работает;
2. Компоненты типа msearch, которые работают с параметрами url также не будут работать.

Помогите составить правильную регулярку чтобы всё работало, а супостаты обломались. Ну или подкиньте идею как с этим бороться. Заранее спасибо.
rrrro
15 ноября 2019, 18:25
modx.pro
1 267
0

Комментарии: 3

Димыч
16 ноября 2019, 23:58
0
В роботе поставьте
Disallow: *?
Страницы, в которых есть ?, в индекс не попадут.
Если ранее в индекс попадали, значит инструкция была некорректная. Поисковики нормально ее отрабатывают. Через Яндекс-вебмастер можете еще проверить.
Ну и ЧПУ нормально настройте
    rrrro
    17 ноября 2019, 15:01
    0
    Спасибо. ЧПУ настроены, роботс настроен так, как вы и написали. Но странички на 1-2 дня всё равно попадают в индекс. Это факт. На позиции не влияет. Но тем не менее, хочется избавится от такой потенциальной проблемы.
      Димыч
      17 ноября 2019, 17:05
      0
      В индекс Гугла или Яндекса?
      webmaster.yandex.ru/site/http:site.ru:80/tools/robotstxt/
      Что вебмастер пишет?
      Робот поисковика может загрузить закрытую страницу, но в индекс она не должна попасть. По крайней мере, на ~30 сайтах с modx не встречался с этим. Чтобы отдавать 404 таким запросам, тоже впервые слышу.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    3