6

Questa è più una domanda di specifiche HTTP che una domanda Sitecore.Sitecore utilizza "302 trovati" per reindirizzare gli utenti alla mia pagina 404 personalizzata: è legittimo?

Ho una pagina di errore 404 istituito nel Sitecore:

<setting name="ItemNotFoundUrl" value="/404.aspx" /> 

Così, quando un utente accede a una pagina inesistente (ad esempio www.example.com/xyz) che vengo reindirizzato al mio 404 personalizzata pagina (es. www.example.com/404.aspx).

Sitecore effettua il redirect utilizzando un 302 come si vede nello screenshot qui sotto Firebug:

302 found redirect to 404 file not found

È questo un problema? Google e altri motori di ricerca indicizzeranno la mia pagina 404 all'URL www.example.com/xyz? Il sito in questione è stato originariamente impostato per restituire "200 OK" risposte dalla pagina 404 (male!) E così i motori di ricerca hanno indicizzato la pagina dei siti 404 ogni volta che hanno trovato un collegamento interrotto nel sito.

Suppongo che dal 302 sia solo un reindirizzamento, il codice di stato nell'URL finale (404 personalizzato) sarà ciò che ogni client deve assumere per l'URL iniziale (di reindirizzamento).

Se questo non è un problema, qual è la specifica/documentazione canonica che lo rende chiaro?

risposta

3

Questo è davvero un problema. Perché Google ora penserà che la pagina 404.aspx non esiste e penserà che l'elemento non esistente venga temporaneamente reindirizzato.

Mi è venuta una soluzione per questo e blogged about it here.

Ciò che sostanzialmente determina è che l'elemento non esiste (tramite un processore di pipeline), quindi recupera il contenuto della pagina 404 richiedendolo utilizzando una richiesta Web e restituisce tali contenuti al browser con un codice di stato 404 .

+1

Ehi, grazie per la risposta - sto marcatura questo come la risposta accettata, perché risponde più direttamente alla domanda ("è così male?"; "sì, è"). Continuano a riscontrare problemi nel far funzionare le due correzioni, ma sto lanciando quelle per il supporto di Sitecore - probabilmente c'è qualche configurazione strana da qualche parte dalla mia parte. – George

10

Oltre a quanto suggerito da Ruud, c'era un blog post by Kern Herskind che utilizza un approccio Sitecore/IIS senza dover scrivere alcun codice aggiuntivo.

+0

Funziona come un fascino! Grazie, non sapevo di questa soluzione. Indovina il mio può essere svuotato ora: D –

+0

Questo è il "problema" con Sitecore, tanti modi per ottenere la stessa cosa!:) – jammykam

+0

Mi sembra fantastico, ma per qualche motivo non funziona sul mio Sitecore (ho ancora il vecchio reindirizzamento 302 a 404). La versione di Sitecore è Sitecore.NET 6.5.0 (versione 110818) e /sitecore/admin/showconfig.aspx fornisce: , , . Qualche idea? – George

4

Come già accennato, le intestazioni di risposta HTTP corrette sono vitali, non solo per il SEO ma anche per molti altri casi d'uso.

C'è un modulo Sitecore Shared Source chiamato "Sitecore Error Manager" che rende l'installazione di Sitecore rispondente con l'intestazione 404 corretta e viene fornito con un paio di altre funzionalità come la configurazione di qualsiasi altra risposta di errore, anche per la libreria multimediale Sitecore (es. file pdf), supporto multilingua, ecc

Sitecore mercato: http://marketplace.sitecore.net/en/Modules/Sitecore_Error_Manager.aspx

Github: https://github.com/unic/SitecoreErrorManager

Problemi correlati