I motori di ricerca non in grado di sito indice asp.net a causa di 302 redirect alla pagina Errore

StackOverflow https://stackoverflow.com/questions/4369917

  •  09-10-2019
  •  | 
  •  

Domanda

io sto avendo il momento più difficile determinare la causa del nostro sito Asp.net non ottenere indicizzati nei motori di ricerca - l'intero sito. Quando uso funzione "Visualizza come Googlebot" di Google, getta il sotto l'errore. Ho fatto in modo le mie opere del sito con le sessioni disabilitate (es. Impostazione SessionMode = "Off" nel web.config), Googled in tutto il web, e ancora senza fortuna.

Ecco l'errore che sto ottenendo da Googlebot:

 HTTP/1.1 302 Found
 Date: Thu, 02 Dec 2010 23:05:49 GMT
 Server: Microsoft-IIS/6.0
 X-Powered-By: ASP.NET
 X-AspNet-Version: 2.0.50727
 Location: /ErrorPage.aspx?aspxerrorpath=/Default.aspx
 Cache-Control: private
 Content-Type: text/html; charset=utf-8
 Content-Length: 168

 <html><head><title>Object moved</title></head><body>
 <h2>Object moved to <a href="%2fErrorPage.aspx%3faspxerrorpath%3d%2fDefault.aspx">here</a>.</h2>
 </body></html>
È stato utile?

Soluzione

Ho trovato la risposta me stesso.

Assicurati di controllare Request.UserLanguages! = Null prima di utilizzarlo. Inoltre, assicurarsi che il CurrentCulture è impostato su un valore predefinito valido. La ragione di entrambe le verifiche è perché i bot non utilizzano Request.UserLanguages ??- è sempre nullo. I browser utilizzati Request.UserLanguages. Per ribadire in altre parole: Non impostare la CurrentCulture se Request.UserLanguages ??è nullo

.

Ecco il problema:

Tutte le pagine aspx nel mio sito ereditare da una classe base personalizzato che eredita da System.Web.UI.Page. Questo non è un problema fino a quando si sostituisce l'OnLoad () o eventi init con il codice che genera un'eccezione solo per i bot. Ho avuto questa riga di codice nel mio OnLoad () evento:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);

Questo codice funziona alla grande quando si accede a pagine aspx da un browser. Duh! che non è intenzione di utilizzare un browser ...? risposta:. Googlebot e tutti gli altri bot

Come verificare se Googlebot ha un problema di indicizzazione del tuo sito:

  1. Iscriviti webmastertools Google, se non l'hai già.
  2. Vai a Labs -> Visualizza come Googlebot
  3. digitare l'URL che si desidera controllare. Quindi fare clic sul collegamento di stato per vedere cosa Googlebot trovato. Se Googlebot restituito eventuali reindirizzamenti (come il 302 di), che di solito non è una buona cosa. Se tutte le pagine del tuo sito sono sempre 302 redirect alla tua pagina di errore personalizzata, allora avete un problema. Che cosa significa è tue pagine web stanno gettando un errore (un'eccezione non gestita) ogni volta che cerca di Googlebot di accedervi. Guardare attraverso il vostro Page_Load (funzioni init () per gli errori) e Googlebot potrebbe avere. È inoltre possibile testare le vostre pagine utilizzando un'applicazione a riga di comando chiamato cool ricciolo ( http: // ricciolo. haxx.se/ ). Con questo strumento sono stato in grado di testare il sito sul nostro server di prova prima di rilasciare alla produzione (che è quello che ci si deve fare ogni volta che si apporta una modifica quando si utilizza Google fetch).
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top