Stato 200 per 404 Not Found pagina CMS
-
16-10-2019 - |
Domanda
In breve, Magento restituisce lo stato 200 per la pagina 404 Not Found CMS, per quello che sembra essere una configurazione piuttosto standard:
Tutto funziona bene quando l'URL viene modificato in cms/index/defaultNoRoute
, pagina predefinita Not Found è caricato con lo stato 404.
Inoltre, assolutamente tutto funziona bene su una copia del sito web su un server diverso. Il che mi avrebbe portato a sospettare la configurazione di Apache. Non so se quello di guardare fuori per.
Ecco le intestazioni di risposta per entrambe le azioni defaultNoRoute e noRoute:
$ curl -I http://www.server.com/cms/index/defaultNoRoute
HTTP/1.1 404 Not Found
Date: Thu, 25 Apr 2013 12:56:07 GMT
Server: Apache
X-Powered-By: PHP/5.2.17
Set-Cookie: frontend=332f53c81eee1f730f430c0f59e0dd83; expires=Thu, 25-Apr-2013 13:56:08 GMT; path=/; domain=www.server.com; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Status: 404 File not found
Vary: Accept-Encoding,User-Agent
Content-Type: text/html; charset=UTF-8
$ curl -I http://www.server.com/cms/index/noRoute
HTTP/1.1 200 OK
Date: Thu, 25 Apr 2013 12:56:11 GMT
Server: Apache
X-Powered-By: PHP/5.2.17
Set-Cookie: frontend=361b3804feaea66a6fcdf1aee048ce44; expires=Thu, 25-Apr-2013 13:56:12 GMT; path=/; domain=www.server.com; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding,User-Agent
Content-Type: text/html
Chiunque può mi punto nella giusta direzione? Cin cin.
Soluzione
Nella mia esperienza questo è più spesso causata da integrazioni CMS scritti male. Non è raro per un'integrazione CMS per riscrivere l'azione noRoute alla cattura quando Magento avrebbe emesso un 404, il contenuto afferrare da un CMS (se disponibile) e poi servire in su nella sezione contenuti della pagina.
Che cosa va male, però, è quando queste integrazioni personalizzate poi non riuscire a rilevare quando anche loro non hanno un contenuto per l'URL nel CMS e indiscriminatamente inviare un codice di 200 risposta sia con contenuti vuota o una pagina di contenuto 404 servito da il CMS (ma con un codice di risposta 200).
In caso di nessun contenuto, in questo tipo di integrazione, il trucco è quello di inoltrare la richiesta al difetto Nessuna azione percorso e / o cadere attraverso e lasciare che la maniglia metodo di controllo genitore la risposta 404.
Avete un modulo di integrazione CMS di qualche tipo installato? Se è così, vorrei suggerire isolandolo per provare uno o di escluderla come la causa.