Google 404 e .NET personalizado páginas de erro
-
02-07-2019 - |
Pergunta
Eu tenho um site ASP.NET 2.0 com uma página 404 personalizada. Quando o conteúdo não for encontrado o local serve a página personalizada 404 com uma adição string de consulta de aspxerrorpath = / mauro.aspx. A página 404 si é servido com um HTTP estado de 200. Para tentar resolver esse I' Adicionamos
protected void Page_Load(object sender, EventArgs e)
{
Response.StatusCode = 404;
}
Eu adicionei o Google widget e têm dois problemas com ele. Em Internet Explorer 7 ele não exibe onde deveria. Se eu adicioná-lo ao conteúdo, eu recebo um "erro desconhecido" na Char 79 linha 226 ou por aí; se eu adicioná-lo à secção da cabeça as caixas de pesquisa aparecem acima do conteúdo. No Firefox trabalha muito bem.
Assim, meus problemas são:
- Como posso fazer o widget aparecerá em linha?
- Como posso fazer a página de erro processar como um 404 com o original nome e o caminho do ser arquivo pediu para que quando eu solicitar mauro.aspx I obter o conteúdo para o Página 404, mas com a URL de mauro.aspx? (Presumo que vou tem que fazer alguma URL reescrita na begin_request arquivo global, mas gostaria que esta confirmada antes de eu fazer qualquer coisa tola.)
Solução 2
Eu já lidou com a 404, fazendo isso no arquivo global
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");
}
}
Agora, se alguém pode me ajudar com o google widget que seria ótimo!
Outras dicas
Há um novo modo de redirecionamento no ASP.NET 3.5 SP1 que agora você pode usar para que ele não redirecionar. Ele mostra a página de erro, mas mantém o URL do mesmo:
"Também agradável para redirecionamentos de URL. Se você definir o redirectMode em no web.config para 'responseRewrite' você pode evitar um redirecionamento para uma página de erro personalizada e deixar o URL no navegador intocado."