Seite 1 von 1

Probleme mit login_error_page und ModRewrite

Verfasst: Fr 12. Dez 2008, 12:26
von funomat
Hallo zusammen,

nachdem ich mich hier bezüglich meines Problems ein wenig umgeschaut habe, und festgestellt habe, dass es einige Artikel gibt die zwar ähnliche aber nicht genau mein Problem aufgreifen (kann natürlich auch was übersehen haben 8) !!), habe ich mal versucht das Problem selber zu lösen.

1. Problembeschreibung:
Ich benutze die Contenido 4.8.8. mit ModRewrite Plugin. Wenn ich mich mit dem Standard Login Modul mit falschen Daten einlogge, lande ich nicht auf der, unter den Mandanteneinstellungen, eingerichteten Login-Fehlerseite, sondern auf der Standard-Fehlerseite.

Lösung:
In der Datei cms/front_crcloginform.inc.php die Zeile 42

Code: Alles auswählen

$sUrl = $cfgClient[$client]["path"]["htmlpath"]."front_content.php";
durch

Code: Alles auswählen

$sUrl = "front_content.php";
Nun taucht aber ein weiterer Fehler auf der mit dem ModRewrite zu tun hat.

2. Problembeschreibung:
Ich lande jetzt zwar auf der richtigen Seite, aber die URL ist komplett falsch. Die sieht dann in etwa so aus:
http://www.domain.xy/kategorie-alias-de ... catart=123

123 steht in diesem Fall für die unter den Mandanteneinstellungen für login_error_page eingetragene idcatart.

Lösung:
Gleiche Datei Zeile 66-70

Code: Alles auswählen

if ($bRedirect) {
    $strErrorUrl = $sess->url($strErrorUrl);
    header("Location: ".$strErrorUrl);
    exit();
}
ersetzen durch

Code: Alles auswählen

if ($bRedirect) {
    $strErrorUrl = 'Location: ' . CEC_Hook::execute('Contenido.Frontend.CreateURL', $strErrorUrl);
    header ($strErrorUrl);
    exit();
}
und Zeile 86-89

Code: Alles auswählen

    $strErrorUrl = $sUrl . "?" . implode("&", $aLocator);
    $strErrorUrl = $sess->url($strErrorUrl);
    header ("Location: " . $strErrorUrl);
    exit();
ersetzen durch

Code: Alles auswählen

    $strErrorUrl = $sUrl . "?" . implode("&", $aLocator);
    $strErrorUrl = 'Location: ' . CEC_Hook::execute('Contenido.Frontend.CreateURL', $strErrorUrl);
    header ($strErrorUrl);
    exit();
Ob es ähnliche Probleme gibt, wenn man kein ModRewrite einsetzt, kann ich nicht sagen. Aber wer tut das schon :wink: !!

Gruß,
funomat

Verfasst: Fr 12. Dez 2008, 12:35
von funomat
Noch eine kleine Ergänzung:

Jeweils vor die Zeile

Code: Alles auswählen

$strErrorUrl = 'Location: ' . CEC_Hook::execute('Contenido.Frontend.CreateURL', $strErrorUrl);
noch folgendes einfügen

Code: Alles auswählen

$strErrorUrl = $sess->url($strErrorUrl);