2009-08-31 2 views
0

Так, из here ...использования CustomErrors для тщеславия URL-адрес/asp.net URL-адрес перенаправления

В ASP.NET, у вас есть выбор о том, как реагировать на это - это в web.config как CustomErrors. Включите это, затем перейдите на страницу 404 (возможно, вы уже это сделали). Таким образом, причудливая 404-страничка может проверять запрошенную последовательность запросов (которая переходит на страницу пользовательской ошибки в качестве еще одной строки запроса), чтобы увидеть, является ли она действительной перенаправлением, живет в вашей базе данных и т. Д. Просто выполните Response.Redirect () оттуда.

Тогда schooner пишет:

Спасибо, у нас есть 404 сейчас, но мы предпочли бы это не быть обнаруженным как 404 в процессе. Мы хотели бы, чтобы он обрабатывал его напрямую и отдельно, если это было возможно.

... и я хотел бы знать, насколько это плохо. Я не собираюсь размещать свои «симпатичные» URL-адреса в Интернете (только визитные карточки), и у меня есть образец кода с 404-перенаправлением на полезный сайт, но я не хочу заниматься производством и у вас есть проблема с браузером, который слишком серьезно относится к начальному 404. Может ли кто-нибудь помочь мне понять больше о том, почему я не хотел бы использовать customErrors/404 для потока пользователей на страницу, которую они действительно хотели?

ответ

1

Основная проблема с использованием customeErrors в качестве обработчика ошибок 404 заключается в том, что каждый раз, когда customErrors извлекает ошибочный запрос, а не бросает ошибку 404 обратно в ваш браузер и позволяет вашему браузеру знать, что есть плохой запрос, вместо этого он возвращает 302, который указывает, что страница была перенесена на любую вашу страницу customErrors. Это не плохо для большинства пользователей, потому что они не знают или даже не замечают разницу, проблема возникает из-за того, что веб-сканеры DO знают разницу, и код состояния, который они получают, напрямую влияет на то, как работает их индексация.

Рассмотрите сценарий, в котором у вас есть страница на http://mysite.com/MyAwesomePageAboutStuff.aspx в течение некоторого периода времени, а затем в один прекрасный день вы решите, что вам больше не нужно, и удалите файл. Если Google или какой-либо другой искатель уже проиндексировал этот URL-адрес и возвращается к нему после его удаления, искатель получит код статуса 302 вместо ошибки 404, и из-за этого кода состояния искатель обновит URL-адрес страницы, чтобы указать на ваш страницу ошибки, а не удалить несуществующую ссылку. Теперь, когда кто-то находит этот URL-адрес в поисковой системе, они попадают на страницу с ошибкой.

Это не очень большая проблема, но вы можете определенно увидеть головные боли, которые это может создать для ваших пользователей в долгосрочной перспективе.

Look here для некоторых подтверждающих данных.

+0

Я ценю ответ. Я думаю, что я в порядке, играя кубики в этом проекте, но спасибо за то, что он изложил некоторые подводные камни. – dnord

+0

Мое удовольствие. :) –

1

Я создал систему urity тщеславия, используя 404 в качестве обработчика. Нет необходимости в 302 на моей стороне, так как 404 динамически загружает контент и возвращает его. Я полностью в состоянии обрабатывать все данные POST/GET и SERVER.

Отлично работает. Если вас интересует TarantulaHawk, то на SourceForge.

Смежные вопросы