Fix zum Beheben des Redirectproblems unter 4.8.10

Gesperrt
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Fix zum Beheben des Redirectproblems unter 4.8.10

Beitrag von xmurrix »

Hallo zusammen,

es hat sich herausgestellt, dass es in der Version 4.8.10 noch ein Problem mit Weiterleitungen zu internen Verzeichnissen/Seiten gibt.

In der Artikeleigenschaft angegebene projektinterne Weiterleitungen, die nicht als eine Url zur einer Contenido-Seite erkannt werden, enden auf der Start-/Fehlerseite.

Urls wie "/forum", "/shop" oder "path/to/somewhere.html" verursachen das oben beschriebene Fehlverhalten.

Im Forum gibt es auch den Beitrag "Problem mit Weiterleitungen bei 4.8.10", in der das Problem geschildert wird.

Habe einen Fix erstellt, der dieses Problem behebt. Damit aber betroffene User nicht auf die nächste Version warten müssen, kann der Fix "Contenido_4.8.10_Redirect_fix.zip" heruntergeladen werden.

Grüße
xmurrix
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Hab da noch ein Redirectproblem bei der Error-Site.
(Con. 4.8.10 + fix)

In der fornt_content.php Z:294

Code: Alles auswählen

$errsite = 'Location: ' . Contenido_Url::getInstance()->buildRedirect($aParams);
Hier wird bei der idart der wert der $errsite_idcat[$client] eingetragen.

d.h.
Ist in den Mandanten-Einstellungen:
errsite_idcat = 1
errsite_idart = 2
Website-Url:
http://domain.tpl/front_content.php?cli ... t=1&idart=1&lang=1&error=1

füge ich den alten Code ein funktioniert es wieder:

Code: Alles auswählen

$errsite = "Location: front_content.php?client=$client&idcat=".$errsite_idcat[$client]."&idart=".$errsite_idart[$client]."&lang=$lang&error=1";
siehe external/backend/front_content.php
(Sollte diese Datei nicht eine Kopie der Datei aus CMS sein? siehe Z:30-33)

Natürlich habe ich versucht das Problem zulösen.
Aber Classen in dem Ausmaße habe ich noch nicht schreiben/bearbeiten müssen.


mfg OliverL
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Beitrag von Oldperl »

Hallo OliverL,

das ist bereits als BUG gemeldet und in der nächsten Version behoben.
:arrow: http://forum.contenido.org/viewtopic.php?t=23163

Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Habe ich wohl in den Log übersehen bzw. hatte ja sowieso den Fehler nicht genau lokalisieren können.

> Jedoch noch die anmerkung das die 3 front_content.php's deckungsgleich sein sollten. Ansonsten sollte der Komentar aus den Dateien raus und eine Mail an alle Entwickler als Info?!?

mfg OliverL
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Beitrag von xmurrix »

Hallo OliverL,
OliverL hat geschrieben:Hab da noch ein Redirectproblem bei der Error-Site.
(Con. 4.8.10 + fix)

In der fornt_content.php Z:294

Code: Alles auswählen

$errsite = 'Location: ' . Contenido_Url::getInstance()->buildRedirect($aParams);
Hier wird bei der idart der wert der $errsite_idcat[$client] eingetragen.

d.h.
Ist in den Mandanten-Einstellungen:
errsite_idcat = 1
errsite_idart = 2
Website-Url:
http://domain.tpl/front_content.php?cli ... t=1&idart=1&lang=1&error=1

füge ich den alten Code ein funktioniert es wieder...
es handelt sich um eine Fehler, der leider nicht gleich erkannt wurde. Beheben kannst es folgendermaßen:

Öffne die Datei contenido/classes/UrlBuilder/Contenido_UrlBuilder_Frontcontent.class.php und ändere die Zeile 105 von

Code: Alles auswählen

   $this->sUrl = $sHttpBasePath . 'front_content.php?idcat='.strval($aParams['idcat']).$this->_sAmp.'idart='.strval($aParams['idcat']);
in

Code: Alles auswählen

   $this->sUrl = $sHttpBasePath . 'front_content.php?idcat='.strval($aParams['idcat']).$this->_sAmp.'idart='.strval($aParams['idart']);
Gruß
xmurrix
Gesperrt