Страница 404 выдаёт 200 код OK

  • 4 Ответов
  • 742 Просмотров

gamma

  • Сообщений: 131
  • люблю музон
    • Просмотр профиля
    • Портфолио фрилансера
Страница 404 выдаёт 200 код OK
« : 18 Апреля 2021, 18:55:12 »
При наборе несуществующего адреса, например site.ru/12345 попадаю на главную, а если например набрать site.ru/2/ то попадаю на
страницу 404 но сервисы проверки ответа сервера показывают 200 код ОК. А это очень плохо для СЕО. Поискал на форуме,
по первому пункту уже заявляли о проблеме ещё в 2018 году, но ответ отсутствует.
Свободный фрилансер. 90% сайтов которые с успехом сдал под ключ на Даннео.

Neon

  • Сообщений: 930
    • Просмотр профиля
    • Danneo CMS
Re: Страница 404 выдаёт 200 код OK
« Ответ #1 : 22 Апреля 2021, 13:15:32 »
Не нахожу проблемы.
У меня по обоим адресам выдает страницу 404, и HTTP-код ответа сервера 404 Not Found.
Систему обновляли?
DANNEO ™

gamma

  • Сообщений: 131
  • люблю музон
    • Просмотр профиля
    • Портфолио фрилансера
Re: Страница 404 выдаёт 200 код OK
« Ответ #2 : 22 Апреля 2021, 19:48:17 »
Самая последняя сборка, где то месяца 2 назад скачал. site.ru/1234 - показывает главную сайта и код 200
site.ru/1234/ показывает страницу 404 и даёт ответ 404
Свободный фрилансер. 90% сайтов которые с успехом сдал под ключ на Даннео.

Neon

  • Сообщений: 930
    • Просмотр профиля
    • Danneo CMS
Re: Страница 404 выдаёт 200 код OK
« Ответ #3 : 22 Апреля 2021, 21:55:50 »

http://bi9.ru/
http://bi9.ru/1234
http://bi9.ru/1234/

Все корректно. Две нижние ссылки 404
Но, если очистить кеш браузера, при первом заходе по несуществующим ссылкам, открывается не главная, а пустая.
После обновления страницы, выдает 404, как и положено.
Нужно еще с роутером поработать.
DANNEO ™

sovyonok

  • Сообщений: 62
    • Просмотр профиля
    • Прогулки по Москве
Re: Страница 404 выдаёт 200 код OK
« Ответ #4 : 04 Мая 2021, 11:15:44 »
Я в свое время разбирался, проблема из-за непустых кукисов.
т.е. с обычного браузера с наличием кукисов (яндексы и прочие) получаем главную.
С инструментов проверки ответа сервера - 404.

У себя решил следующим образом
/**
* 404 - Not Found
*/
if (!(isset($_REQUEST['dn']) OR isset($_REQUEST['to']) OR isset($_REQUEST['re']) OR isset($_REQUEST['pa']) OR isset($_REQUEST['cap']) ) AND ! empty($this->uri))
//if (empty($_REQUEST) AND ! empty($this->uri))
{
$this->_404();
}