Что такое ошибка 404? Ошибка HTTP 404 означает, что веб-страница, на которую указывает ссылка, не существует, то есть URL оригинальной веб-страницы недействительна, что часто случается и трудно избежать, например: изменения правил генерации URL веб-страницы, переименование или перемещение файла веб-страницы, ошибка в написании импортированной ссылки и т.д., в результате чего исходный URL-адрес становится недоступным; Когда веб-сервер получает аналогичный запрос, он возвращает статус 404, сообщающий браузеру, что запрашиваемый ресурс не существует. Однако стандартная страница ошибок 404 для веб-серверов, будь то Apache или IIS, очень примитивна, скучна и неудобна для пользователя, и не предоставляет пользователям необходимой информации для получения дополнительных подсказок, что, несомненно, приведёт к оттоку пользователей. Роль 404 страниц Поисковые системы используют HTTP-коды статуса для определения статуса веб-страницы. Если поисковая система получает неправильную ссылку, сайт должен вернуть статус 404 с указанием прекратить индексацию ссылки. Если возвращается статус 200 или 302, поисковые системы индексируют ссылку, в результате чего большое количество разных ссылок, ведущих на один и тот же веб-контент. В результате поисковые системы значительно меньше доверяют сайту. Как проверить, что пользовательская страница 404 возвращает статус "404" После настройки пользовательской страницы ошибки 404 обязательно проверьте, правильно ли она возвращает статус "404". Метод проверки тоже довольно прост: введите URL сайта, которого нет на веб-странице, проверьте возврат HTTP-заголовка и убедитесь, что он возвращает статус "404". 404 страницы — это правильное решение 1. Как настроить страницу сервера Apache 404 Добавьте код в файл .htaccess: ErrorDocument 404/Error.html Создайте простой HTML404 Error.html для названия страницы Разместите Error.html в корневой каталог вашего сайта. 2. Установить страницу ошибки 404 в отделе IIS/ASP.net Сначала измените настройки корневой директории приложения, откройте редактирование файла "web.config" и добавьте в него следующее содержимое: <configuration> <system.web> <customErrors mode="On" defaultRedirect="error.asp"> <error statusCode="404" redirect="notfound.asp" /> </customErrors> </system.web> </configuration>
В этом примере error.asp — стандартная страница 404, а notfound.asp — кастомизированная страница 404.
Затем добавьте пользовательскую страницу 404 «notfound.asp»: <% Response.Status = «404 не найден» %>
Это гарантирует, что IIS правильно возвращает статус «404»
Дружеское напоминание 1. Не направляйте ошибку 404 напрямую на главную страницу сайта, так как это может привести к тому, что ваша главная страница может не быть включена; 2. /Error.html Пожалуйста, не указывайте перед ним основное доменное имя (неправильное написание: yzznl.cn/error.html, правильное написание :/error.html), иначе возвращаемый статус-код — это статус 302 или 200. При поиске, как настроить страницу ошибки 404 с asp.net сайта, большинство статей советуют зайти на web.config, найти system.web и настроить следующее.
Копирование кода Код следующий:
<customErrors mode="Включено" статус ошибкиCode="404" redirect="/404.htm" > </customErrors>
На самом деле, после этого вы получите не заголовок страницы 404 unfound, а информацию о заголовке временного перенаправления 302. Вы можете использовать инструмент Check Headers Tool, чтобы проверить коды статуса HTTP.
Итак, как правильно настроить пользовательские страницы с ошибками 404 для asp.net сайта?
Начните с создания страницы 404.aspx, затем настройте её в customeErrors в файле web.config следующим образом: customErrors redirectMode="ResponseRewrite" статус ошибкиCode="404" redirect="~/404.aspx"/
/customErrors
RedirectMode обладает двумя свойствами. ResponseRedirect означает перенаправление пользователя на эту страницу ошибки, и исходный URL меняется на URL этой страницы ошибки. ResponseRewrite означает перенаправление пользователя на страницу ошибки без изменения исходного URL в браузере.
Затем в файле 404.aspx.cs добавьте следующий код для события Page_Load: Копирование кода Код следующий:
protected void Page_Load(object sender, EventArgs e)
{ Response.Status = "404 не найдены";
}
|