Das könnte gehen, glaube ich, aber du bietest damit Hackern einen Angriffspunkt, indem sie nur die Servervariable $_SERVER['HTTP_HOST'] überschreiben und an diese Fehlerseitenabfrage senden müssen.
Wie würde die URL wohl aus sehen, wenn der Hacker $_SERVER['HTTP_HOST'] = 'fishingpage.tld' an dein Programm sendet und bei sich einen Pfad namens /deutsch/fehlerseite/fehlerseite.html eingerichtet hat ?
Nimm lieber die Contenido System-Variablen für den Pfad:
http://www.contenido-wiki.org/wiki/inde ... mvariablen
AMR Modul gibt bei Fehlerseite keinen 404 Header aus
Re: AMR Modul gibt bei Fehlerseite keinen 404 Header aus
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: AMR Modul gibt bei Fehlerseite keinen 404 Header aus
Hallo lunsen_de,
aufgerufen hat und richtig sollte es folgendermaßen sein:
Jest stehts du vor dem selben Problem, über den wir uns hier in mittlerweile fast 4 Seiten unterhalten. Die URL soll als Prefix die Sprache "/deutsch/" enthalten, Ausnahme ist wohl die URL zum Root "/" oder auch URLs mit "...front_content.php...". Nun kommt da eine URL "/deut/" als Prefix an und "deut" ist keine Sprache. Das ist ein klassischer Fehler und du möchtest nun die deutsche Fehlerseite ausgeben, obwohl die Sprache nicht ermittelt werden konnte, die URL also falsch ist. Vielleicht wollte der User eine englische Seite besuchen und die ganze URL zeigt auf die englische Seite, nur dass vorne ein Vertipper in der Sprache ist.
Warum machst du die Ausnahme dann für die Sprache oder den Mandanten?
Bei einem einzigen Mandanten kann man die ID des Mandanten mal ignorieren. Das wird aber bei einem Mehrmandantensystem auch nicht funktionieren. Da kannst du nicht einfach einen "default" Mandanten laden, das wäre fatal...
Wie du siehst, gibt es verschiedene Anforderungen, jeder hat da seine eigene Vorstellung davon was richtig ist oder nicht. Genau aus diesem Grund wird das AMR-Plugin, wie auch allen anderen Module und Plugins hier im Forum, nie allen Wünschen gerecht sein. Sehe es als eine Vorlage an der du etwas Feintuning machen kannst, auf die Gefahr hin, dass ein Update wegen geänderter Sourcen dann schwieriger wird.
Gruß
xmurrix
Aber das ist ja dann nicht möglich, wenn man nun Stikt sein will. Da es ja einen Fehler beim Ermitteln der Sprache oder des Mandanten gab, kommt es laut der aktuellen Logik im Script daher, dass jemand eine z. B. URL wielunsen_de hat geschrieben:...Eine Sache habe ich noch in der front_content_controller.php geändert, damit bei Fehler in der Sprache oder Mandant nicht dir statische 404.html sondern auch die Fehlerseite gezeigt wird....
Code: Alles auswählen
http://www.meinedomain.de/deut/fehlerseite/fehlerseite.html
Code: Alles auswählen
http://www.meinedomain.de/deutsch/fehlerseite/fehlerseite.html
Warum machst du die Ausnahme dann für die Sprache oder den Mandanten?
Bei einem einzigen Mandanten kann man die ID des Mandanten mal ignorieren. Das wird aber bei einem Mehrmandantensystem auch nicht funktionieren. Da kannst du nicht einfach einen "default" Mandanten laden, das wäre fatal...
Wie du siehst, gibt es verschiedene Anforderungen, jeder hat da seine eigene Vorstellung davon was richtig ist oder nicht. Genau aus diesem Grund wird das AMR-Plugin, wie auch allen anderen Module und Plugins hier im Forum, nie allen Wünschen gerecht sein. Sehe es als eine Vorlage an der du etwas Feintuning machen kannst, auf die Gefahr hin, dass ein Update wegen geänderter Sourcen dann schwieriger wird.
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Re: AMR Modul gibt bei Fehlerseite keinen 404 Header aus
Hallo,
xmurrix Danke für den Anstoss. Jetzt habe ich es verstanden. Den Ansatz den du beschrieben hast, habe ich völlig außer Acht gelassen.
Ich werde jetzt ein Statische 404.html machen, die mehreren Mandanten als auch Sprachen bei Schreibfehlern in Sprache und Mandant gerecht wird.
Faar Ich habe den Eintrag wieder herausgenommen. Leider sind meine PHP-Kenntnisse nicht gut genug, um solche Lücken zu sehen und richtig anzupassen/ zu schliessen.
Gruß lunsen_de
xmurrix Danke für den Anstoss. Jetzt habe ich es verstanden. Den Ansatz den du beschrieben hast, habe ich völlig außer Acht gelassen.
Ich werde jetzt ein Statische 404.html machen, die mehreren Mandanten als auch Sprachen bei Schreibfehlern in Sprache und Mandant gerecht wird.
Faar Ich habe den Eintrag wieder herausgenommen. Leider sind meine PHP-Kenntnisse nicht gut genug, um solche Lücken zu sehen und richtig anzupassen/ zu schliessen.
Gruß lunsen_de
Re: AMR Modul gibt bei Fehlerseite keinen 404 Header aus
Hallo, ich muss jetzt nochmal eine Frage zum AMR Plugin stellen, bezüglich eines Verhaltens (früher/jetzt). Vielleicht liegt es auch an den Änderungen, aber mit dem 0.6.0 (nicht modifiziert) ist es auch nicht anders.
Zur Erklärung: ich will Alles hier besprochene nicht rückgängig machen, aber bei manchen Kunde evtl. etwas anders herangehen und schon indizierte Seiten (index.html) vielleicht mit einem canonical Tag vershen.
Bei den älteren Systemen ist es so (4.8.15 AMR 0.5.5):
Artikelname an URLs anhängen: aktiviert, Standardname: index.html, Duplicated Content verhindern:aktiviert
Ich kann im Frontend beide Dateiendungen aufrufen: unternehmen.html UND index.html
Jetzt 4.8.18, AMR 0.6.0:
Artikelname an URLs anhängen: aktiviert, Standardname: index.html, Duplicated Content verhindern:aktiviert
Ich bekommen (bei index.html) immer die Fehlerseite angezeigt, es geht nur unternehmen.html, ich muss also Standardname UNBEDINGT freilassen, sonst führt die Navi immer zur Fehlerseite.
Wenn ich also beide URLs verwenden will, muss ich Standardname: index.html, Duplicated Content verhindern:deaktivieren.
Ist das so korrekt?
Gruß lunsen_de
Zur Erklärung: ich will Alles hier besprochene nicht rückgängig machen, aber bei manchen Kunde evtl. etwas anders herangehen und schon indizierte Seiten (index.html) vielleicht mit einem canonical Tag vershen.
Bei den älteren Systemen ist es so (4.8.15 AMR 0.5.5):
Artikelname an URLs anhängen: aktiviert, Standardname: index.html, Duplicated Content verhindern:aktiviert
Ich kann im Frontend beide Dateiendungen aufrufen: unternehmen.html UND index.html
Jetzt 4.8.18, AMR 0.6.0:
Artikelname an URLs anhängen: aktiviert, Standardname: index.html, Duplicated Content verhindern:aktiviert
Ich bekommen (bei index.html) immer die Fehlerseite angezeigt, es geht nur unternehmen.html, ich muss also Standardname UNBEDINGT freilassen, sonst führt die Navi immer zur Fehlerseite.
Wenn ich also beide URLs verwenden will, muss ich Standardname: index.html, Duplicated Content verhindern:deaktivieren.
Ist das so korrekt?
Gruß lunsen_de
Re: AMR Modul gibt bei Fehlerseite keinen 404 Header aus
Guten Morgen lunsen_de,
das AMR-Plugin hat früher die Option "Duplicated Content verhindern" nur teilweise erfüllt. Kurz zu Vorgeschichte dieser Option. Es ist möglich, im AMR-Plugin die Hauptnavigation der URL voranzustellen. Diese Einstellung hat für Duplicated Content gesorgt, da mann die Seiten mit und ohne vorangestellter Hauptnavigation, aufrufen konnte. Um das Problem zu lösen kam dann die Option "Duplicated Content" hinzu, und diese Option hat sehr lange nur mit aktivierter Option "Hauptnavigation der URL voranzustellen" gewirkt. Bis zur Version AMR 0.5.5 war das so.
In der neuen version AMR 0.6.0 ist das anders, hier wird die Prüfung auf Duplicated Content unabhängig von der Option "Hauptnavigation der URL voranzustellen" ausgeführt.
Das AMR-Plugin geht also in der Version 0.6.0 strikter/richtiger mit der Option "Duplicated Content" um, dafür ist es nicht abwärtskompatibel.
Willst du nun alte schon indizierte Seiten dennoch durchlassen, so solltest du die Option "Duplicated Content verhindern" deaktivieren.
Gruß
xmurrix
das AMR-Plugin hat früher die Option "Duplicated Content verhindern" nur teilweise erfüllt. Kurz zu Vorgeschichte dieser Option. Es ist möglich, im AMR-Plugin die Hauptnavigation der URL voranzustellen. Diese Einstellung hat für Duplicated Content gesorgt, da mann die Seiten mit und ohne vorangestellter Hauptnavigation, aufrufen konnte. Um das Problem zu lösen kam dann die Option "Duplicated Content" hinzu, und diese Option hat sehr lange nur mit aktivierter Option "Hauptnavigation der URL voranzustellen" gewirkt. Bis zur Version AMR 0.5.5 war das so.
In der neuen version AMR 0.6.0 ist das anders, hier wird die Prüfung auf Duplicated Content unabhängig von der Option "Hauptnavigation der URL voranzustellen" ausgeführt.
Das AMR-Plugin geht also in der Version 0.6.0 strikter/richtiger mit der Option "Duplicated Content" um, dafür ist es nicht abwärtskompatibel.
Willst du nun alte schon indizierte Seiten dennoch durchlassen, so solltest du die Option "Duplicated Content verhindern" deaktivieren.
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Re: AMR Modul gibt bei Fehlerseite keinen 404 Header aus
Hallo xmurrix,xmurrix hat geschrieben:Der Code in deinem Beispiel ist auch in der überarbeiteten Version des AMR-Plugins, den ich dir gestern angepast habe.
http://purc.de/temp/plugin_advanced_mod ... 04_mod.zip
Warum das bei dir nicht geht, kann ich nicht sagen.
Nein, das ist nicht ratsam, die 404 sollte auf der Seite ausgegeben werden, in der auch das Problem aufgetreten ist. Eine Weiterleitung auf die Fehlerseite mit der Ausgabe von 404 ware nicht richtig, da die Fehlerseite selber ja korrekt ist....Er springt jetzt halt nicht mehr in der Adresszeile um. Ist eine Kombination der beiden Codeteile möglich?
Ja, es ist SEO relevant. Nur die URL, zur der die Seite nicht gefunden wurde, sollte 404 ausgeben. Eine Ausgabe von 404 mit einer nachfolgenden Weiterleitung ist nicht ratsam, da die Weiterleitung vermutlich den vorherigen 404 Header ungültig macht....Ist das für SEO relevant, ob die Adresszeile umspringt, oder ist das somit eine SAUBERE Lösung?...
Gruß
xmurrix
ich habe aus SEO-Gründen deinen 404-Fix Variante des MR Plugins 0.6.0 installiert. Jetzt werden die nicht vorhandenen Seiten korrekt mit 404 ausgegeben und nicht mehr mit 302 auf die in Contenido hinterlegte Fehlerseite redirected. Soweit, so gut.
Mein Problem ist jetzt allerdings, dass Google Webmastertools meckert und bestimmte indexierte URLs nicht mehr gefunden werden und die 404.html angezeigt wird.
Beispiel:
http://www.dr-buchert.de/cms/front_content.php?idart=16 wurde mit 0.6.0 (Standard) vorher korrekt redirected auf http://www.dr-buchert.de/de/front_content.php?idart=16, so dass ich wenigstens den Content sehen konnte.
Mit 0.6.0-404 wird für http://www.dr-buchert.de/cms/front_content.php?idart=16 einfach die 404.html angezeigt. :/
Eigentlich wollte ich in der HTACCESS mit folgenden Eintrag auf die "richtige" URL redirecten. Da greifen jedoch die RewriteRules und machen mir einen Strich durch die Rechnung. Das war sowohl bei der 0.6.0 als auch bei der 0.6.0-404 der Fall.
Code: Alles auswählen
RedirectMatch 301 /cms/front_content.php?idart=16 http://www.dr-buchert.de/de/lexikon/hinweisgeber-whistleblowing.html
Meine Einstellungen lauten:
![Bild](https://dl.dropboxusercontent.com/u/4924414/mr_contenido.png)
Viele Grüße,
akku
Re: AMR Modul gibt bei Fehlerseite keinen 404 Header aus
Hallo akku,
willkommen im CONTENIDO Forum.
Das AMR-Plugin macht selber keine Weiterleitungen von alten URLs zu neuen URLs. Das vorhandene Routing ist nur ein internes Routing, es macht keine Weiterleitung mit der header-Direktive, gibt nur eine andere gewünschte Zielseite aus.
Dein Ansatz mit dem Redirect in der .htaccess war schon richtig, aber du musst dafür sorgen, dass die Regel dann bei einem Redirect auch als letztes ausgeführt wird. Wenn nicht arbeitet Apache die nachfolgenden Regeln, die die vorherigen "überschreiben".
Bei der RewriteRule Direktive gibt es den Flag L, die sorgt dafür dass nachfolgende Rewrite-Regeln bei einem Treffer nicht mehr verarbeitet werden.
Vielleicht kannst du das als Flag für deine RedirectMatch verwenden, bin mir da aber nicht sicher, probiere es also aus.
Es kann aber auch daran liegen, dass deine Regel in der .htaccess gar nicht greift, oder eine andere Regel, die vorher definiert wurde, zuerst abgearbeitet wird.
Gruß
xmurrix
willkommen im CONTENIDO Forum.
Das AMR-Plugin macht selber keine Weiterleitungen von alten URLs zu neuen URLs. Das vorhandene Routing ist nur ein internes Routing, es macht keine Weiterleitung mit der header-Direktive, gibt nur eine andere gewünschte Zielseite aus.
Dein Ansatz mit dem Redirect in der .htaccess war schon richtig, aber du musst dafür sorgen, dass die Regel dann bei einem Redirect auch als letztes ausgeführt wird. Wenn nicht arbeitet Apache die nachfolgenden Regeln, die die vorherigen "überschreiben".
Bei der RewriteRule Direktive gibt es den Flag L, die sorgt dafür dass nachfolgende Rewrite-Regeln bei einem Treffer nicht mehr verarbeitet werden.
Code: Alles auswählen
RewriteRule /cms/front_content.php?idart=16 /de/lexikon/hinweisgeber-whistleblowing.html [L]
Es kann aber auch daran liegen, dass deine Regel in der .htaccess gar nicht greift, oder eine andere Regel, die vorher definiert wurde, zuerst abgearbeitet wird.
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.