Пользовательские страницы ошибок Google 404 и .NET
-
02-07-2019 - |
Вопрос
У меня есть веб-сайт ASP.NET 2.0 со специальной страницей 404.Если контент не найден, сайт отображает пользовательскую страницу 404 с добавлением строки запроса aspxerrorpath=/mauro.aspx.Сама страница 404 обслуживается с помощью HTTP статус 200.Чтобы попытаться решить эту проблему, я добавил
protected void Page_Load(object sender, EventArgs e)
{
Response.StatusCode = 404;
}
Я добавил виджет Google, и у меня возникли две проблемы.В Интернет Проводник 7 он не отображается там, где должен.Если я добавлю его в контент, я получу «неизвестную ошибку» в строке 226 символа 79 или около того;если я добавлю его в раздел заголовка, над содержимым появятся поля поиска.В Фаерфоксе все работает нормально.
Итак, мои проблемы:
- Как сделать виджет встроенным?
- Как сделать рендеринг страницы ошибки как 404 с исходным именем и путем запрошенного файла, чтобы, когда я прошу Mauro.aspx, я получаю контент для страницы 404, но с URL Mauro.aspx?(Я предполагаю, что мне придется сделать немного перезапись URL-адресов В файле Begin_Request Global.asax, но хотелось бы, чтобы это подтвердилось, прежде чем я сделаю что -то глупое.)
Решение 2
Я обработал ошибку 404, выполнив это в файле global.asax.
protected void Application_BeginRequest(object sender, EventArgs e)
{
string url = Request.RawUrl;
if ((url.Contains(".aspx")) && (!System.IO.File.Exists(Server.MapPath(url))))
{
Server.Transfer("/Error/FileNotFound.aspx");
}
}
Если кто-нибудь сможет помочь мне с виджетом Google, это будет здорово!
Другие советы
В ASP.NET 3.5 SP1 появился новый режим перенаправления, который теперь можно использовать, чтобы он не перенаправлялся.Он показывает страницу с ошибкой, но URL-адрес остается прежним:
«Также удобно для перенаправления URL-адресов.Если вы установите для параметра redirectMode в web.config значение «responseRewrite», вы сможете избежать перенаправления на пользовательскую страницу ошибок и оставить URL-адрес в браузере нетронутым».