Frage

Kurz gesagt, Magento gibt Status 200 für die 404 nicht gefundene CMS -Seite für eine ziemlich Standardkonfiguration zurück:

enter image description here

Alles funktioniert gut, wenn die URL in geändert wird cms/index/defaultNoRoute, Die nicht gefundene Standardseite ist mit Status 404 geladen.

Außerdem funktioniert absolut alles gut auf einer Kopie der Website auf einem anderen Server. Das würde mich dazu bringen, die Apache -Konfiguration zu vermuten. Ich bin mir nicht sicher, wonach ich achten soll.

Hier finden Sie Antwort -Header für Standard -Aktionen für Standardnorte und Norute:

$ 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

Kann mich jemand in die richtige Richtung verweisen? Prost.

War es hilfreich?

Lösung

Nach meiner Erfahrung wird dies am häufigsten durch schlecht geschriebene CMS -Integrationen verursacht. Es ist nicht ungewöhnlich, dass eine CMS -Integration die Noroute -Aktion umschreibt, um zu fangen, wenn Magento einen 404 ausgeben würde, Inhalte von einem CMS (falls verfügbar) zu erfassen, und sie dann im Inhaltsabschnitt der Seite bereitstellen.

Was jedoch schief geht, ist, wenn diese benutzerdefinierten Integrationen dann nicht feststellen, wann sie auch keinen Inhalt der URL im CMS haben, und wahllos einen 200 Antwortcode mit leerem Inhalt oder einer 404 -Inhaltsseite senden, die vom CMS (CMS serviert werden aber mit einem 200 Antwortcode).

Bei dieser Art der Integration besteht der Trick bei keinem Inhalt darin, die Anforderung einfach an die Standard -Routenaktion weiterzuleiten und/oder die übergeordnete Controller -Methode mit der Antwort von 404 umzugehen.

Haben Sie ein CMS -Integrationsmodul in irgendeiner Art installiert? Wenn ja, würde ich empfehlen, es zu isolieren, um es als Ursache zu beweisen oder auszuschließen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top