• Ок. Есть такая проблема.

    Есть сайт, работающий на вордпрессе.

    Из плагинов установлен worpdress SEO и bullet Proof (защита).

    Проблема следующего характера. Сегодня обнаружили, что если ввести адрес типа http://misite.com/? — и любые символы после (или же просто «?») — сайт не выдает ошибку 404 (при том, что страниц подобных нет).

    Если же ввести http://misite.com/dslfjad (любые символы) — ошибка 404 тут как тут.

    Просьба помочь в решении проблемы. Спасибо заранее.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Юрій

    (@yube)

    если ввести адрес типа http://misite.com/? — и любые символы после (или же просто «?») — сайт не выдает ошибку 404

    Так себя ведет большинство движков. И сайты без движков, кстати, тоже.

    Ну, большинство или нет. Моя проблема заключается в том, что с левых сайтов на мой разместили пару ссылок, которые в итоге (слава Богу, конечно) открывают главную страницу. Но, меня это никак не греет.

    При этом адрес страниц типа — /?route= и пошло поехало.

    Хотелось бы понять, как эту беду можно закрыть. Пытался ставить всяческие плагины по редиректу, колдовать в htaceess.

    А воз и ныне там (с)…

    Модератор Юрій

    (@yube)

    Если Вы не отключали вывод rel canonical, включенный по умолчанию в wordpress, то такие левые ссылки ни на что не влияют. Но если очень хочется, чтобы на несуществующие get-параметры движок отвечал 404-й ошибкой, я могу рассказать, как это можно сделать. На PHP, надеюсь, писать умеете?

    Да, действительно отключал (возможно). Но и на php пишу. Так что буду признателен за помощь.

    Модератор Юрій

    (@yube)

    Я бы делал так (если бы вдруг приспичило)

    Нужно найти все допустимые get-параметры. Полного списка в Кодексе не встречал (или не обратил внимания), но если память мне не изменяет, большинство (или даже все) параметры есть в /wp-includes/query.php. Создать из них массив. Добавить туда параметры, используемые плагинами и функционалом активной темы. Затем в цикле проверить вхождение в этот массив всех реально присутствующих в запросе параметров. Если есть «неопознанный», возвращать 404. Проверялку можно либо культурно оформить плгином и повесить, скажем, на хук init, либо рабоче-крестьянским способом вставить в корневой index.php.

    Разумеется, при установке новых пплагинов и/или тем придется пополнять список, при деинсталляции — чистить.

    Здорово! Спасибо за развернутый ответ, буду копошиться. 🙂

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Ошибка работы 404.» закрыта для новых ответов.