Редирект на запись не найден? - PullRequest
0 голосов
/ 04 октября 2009

В книге Agile Web development with Rails предлагается, чтобы, когда кто-то пытается получить доступ к некоторым данным на вашем веб-сайте и записи больше не существует, пользователь должен быть перенаправлен на рабочую страницу и отображать сообщение .

Пользователь может перейти в / book / 1, но книга с идентификатором 1 больше не существует, поэтому она перенаправляется в / books и показывает сообщение "Эта книга не существует". Это кажется хорошим опытом для пользователя, но нарушает протокол HTTP. Это должно быть временное перенаправление? если это так, веб-сканер будет продолжать попадать на эту страницу. Должно ли это быть постоянное перенаправление? Если так, то предыдущий контент должен быть доступен там, а это не так.

Я думаю, что страница, которая не найдена, должна выдавать 404. Я ошибаюсь? Нажатие на / book / 1, где 1 больше не существует, вернет 404 с HTML, показывающим то же самое, что и / books, и, возможно, сообщение об ошибке.

Agile Web-разработка с Rails против этого варианта, потому что пользователь может продолжать нажимать / book / 1, генерируя 404, только чтобы увидеть то, что можно увидеть в /books.

Что ты думаешь?

Ответы [ 4 ]

1 голос
/ 04 октября 2009

Если ресурс не существует, отправьте код состояния 404. Это действительно так просто. Перенаправление означает, что только URL (временно) недействителен, но ресурс существует.

0 голосов
/ 04 октября 2009

Я думаю, что есть хороший компромисс, когда вы визуализируете шаблон 404 (в комплекте с кодом состояния 404), который предлагает пользователю перейти к / books или /whwhat.

0 голосов
/ 04 октября 2009

, если запись больше не существует , чем вы, вероятно, должны использовать код состояния 301, «постоянное перенаправление». Разница между 301 и 404 заключается в том, что код ошибки 404 следует использовать в тех случаях, когда ресурс никогда не существовал и 301, когда ресурс существовал, но перемещался.

0 голосов
/ 04 октября 2009

Если нет 404, поисковые системы не смогут обнаружить, что объект был удален. Так что я полагаю, что это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...