Pagine di errore personalizzate Google 404 e .NET
-
02-07-2019 - |
Domanda
Ho un sito Web ASP.NET 2.0 con una pagina 404 personalizzata. Quando il contenuto non viene trovato, il sito offre la pagina 404 personalizzata con un'aggiunta alla stringa di query di aspxerrorpath = / mauro.aspx. La stessa pagina 404 è servita con uno stato HTTP di 200. Per provare a risolvere questo I ' ho aggiunto
protected void Page_Load(object sender, EventArgs e)
{
Response.StatusCode = 404;
}
Ho aggiunto il widget di Google e ho due problemi con esso. In Internet & nbsp; Explorer & nbsp; 7 non viene visualizzato dove dovrebbe. Se lo aggiungo al contenuto, visualizzo un errore "sconosciuto" " su char 79 linea 226 o giù di lì; se lo aggiungo alla sezione head, le caselle di ricerca vengono visualizzate sopra il contenuto. In Firefox funziona bene.
Quindi i miei problemi sono:
- Come faccio ad apparire il widget Inline?
- Come si crea la pagina di errore render come 404 con l'originale nome e percorso del file richiesto in modo che quando chiedo mauro.aspx Ottengo il contenuto di 404 pagina, ma con l'URL di mauro.aspx? (Suppongo che lo farò devi fare un po 'di riscrittura degli URL nella begin_request file global.asax, ma vorrei questo confermato prima di me fare qualcosa di stupido.)
Soluzione 2
Ho gestito il 404 facendo questo nel file 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");
}
}
Ora, se qualcuno mi può aiutare con il widget di Google sarebbe fantastico!
Altri suggerimenti
Esiste una nuova modalità di reindirizzamento in ASP.NET 3.5 SP1 che ora è possibile utilizzare in modo che non reindirizzi. Mostra la pagina di errore, ma mantiene lo stesso URL:
" Bello anche per i reindirizzamenti URL. Se imposti redirectMode su web.config su " responseRewrite " puoi evitare il reindirizzamento a una pagina di errore personalizzata e lasciare intatto l'URL nel browser. "