Почему плохо иметь заголовок 200 OK на странице ошибки 404?
У меня проблема: у меня проблема со статусом заголовка 200OK на странице / err404, хотя она должна быть 404. что плохого в том, чтобы иметь 200 ОК? действительно ли что-то подобное 200 OK должно быть в 404 статусе заголовка страницы ошибки?
цените советы!! большое спасибо!
Я думаю, это связано с.htaccess. вот мой файл.htaccess;
ErrorDocument 404 /err404.html
RewriteEngine On
RewriteRule ^login.html$ index.php?s=login&a=loginDo [QSA,L]
RewriteRule ^logout.html$ index.php?s=login&a=logoutDo [QSA,L]
RewriteRule ^([^/]*).html$ index.php?s=$1 [QSA,L]
RewriteRule ^members/([^/]*)$ index.php?s=profile&username=$1 [QSA,L]
RewriteRule ^([^/]*)/$ index.php?s=listing&search[cityString]=$1 [QSA,L]
RewriteRule ^([^/]*)/([^/]*)/$ index.php?s=listing&search[neighborhoodString]=$2 [QSA,L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*).html$ index.php?s=details&seo_friendly=$3 [QSA,L]
У меня также есть еще некоторые проблемы, связанные с этим файлом htaccess:(
Вопрос 1; когда url похож на http://localhost/fdfcdcvdvdvbdf.html (не существует url), он перенаправляет на домашнюю страницу, но он должен перенаправлять на err404.html. Есть идеи о проблеме? Перенаправление err404 работает хорошо в случае URL, например http://localhost/fdfcdcvdvdvbdf.ht или http://localhost/fdfcdcvdvdv
Вопрос 2; Как я могу исправить эту проблему 200 OK: /
7 ответов
Возвращая 200 OK
статус пропущенных страниц, вы путаете браузеры (могут не отображаться сообщения об ошибках, если у вас не было пользовательской ошибки HTML) и поисковые системы (они начнут индексировать все, о чем кто-то им скажет, например, example.com/this-web-site- это-ужасно потребительной наш-конкурент)...
Что касается вашего редактирования о mod_rewrite:
http://example.com/lsdjkldsjlk.html соответствует вашему третьему RewriteRule
, так что он будет перенаправлен на index.php.
Сценарий index.php - это место, где вы должны обнаружить, что нет содержимого, связанного с s
параметр и вернуть статус 404 через вызов header()
,
Значение 404 - это не просто украшение на елку - оно передает реальную информацию о данном URL, а именно о том, что его не существует. Отправка 200 страниц, описывающих тот факт, что страница не существует, - это совсем другое дело, особенно для программы, в отличие от человека.
Итак, семантика HTTP довольно ясна: если запрошенная страница не найдена на сервере, 404
должно быть отправлено.
Кроме того, если вы не возражаете против сканирования / индексации вашего сайта с мусором (когда есть страницы, которые не найдены)...
Во-первых, вы, вероятно, не хотите, чтобы поисковые системы проиндексировали ваши 404 страницы.
Кстати, вы знаете, откуда 404 в "странице ошибки 404"? Это точно код ошибки HTTP.
Программное обеспечение должно различать правильные и неправильные страницы. Если вы отправите страницу с надписью "404" в виде изображения, никакое программное обеспечение никогда не распознает, что что-то не так.
Это не страница ошибки 404, если она возвращает статус 200. Все, что должно выйти из строя, если страница недоступна (кэши, прокси, скрипты), не потерпит неудачу и наступит хаос. Кроме того, Google будет ненавидеть вас (потому что спам-сайты возвращают 200 страниц для любых запросов.) Просто верните чертову ошибку 404.
Это проблема доступности. 200 OK означает, что отправленный ресурс является запрошенным ресурсом. 404 означает, что запрошенный ресурс не может быть найден, а отправленный ресурс является страницей с ошибкой. Браузеры используют отправленный вами код состояния, чтобы узнать, все ли в порядке. Вы можете не заметить каких-либо различий на отображаемой странице как человек, но сканеры должны знать такие вещи (или они будут индексировать ваши ошибки и тому подобное).