Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: generateFrontendUrl() mit Parametern -> Fehler 404

  1. #1
    Contao-Nutzer
    Registriert seit
    05.10.2013.
    Beiträge
    25

    Standard generateFrontendUrl() mit Parametern -> Fehler 404

    Hallo,

    habe folgenden Code:

    PHP-Code:
    $page_alias 'my-page';
    $arrPage = \PageModel::findPublishedByIdOrAlias($page_alias)->current()->row();
    echo 
    $strUrl $this->generateFrontendUrl($arrPage,"/showErrors/1"); 
    Der Code spuckt mir korrekt aus:
    http://myhost/my-page/showErrors/1.html

    Aber die Seite funktioniert nicht sondern landet einen 404-Treffer. Wo ist mein Fehler?

    http://myhost/my-page.html funktioniert natürlich.

    Genauso wie http://myhost/my-page.html?showErrors=1 auch funktioniert. Aber wie kriegt man das mit Contao gebaut? Welche Struktur sollte man grundsätzlich verwenden? Gibt's dazu Guidelines? Mit generateFrontendUrl() geht es ja nicht, oder?


    Gruß,
    Stefan

  2. #2
    Contao-Nutzer
    Registriert seit
    23.06.2012.
    Beiträge
    72

    Standard

    Damit kämpfe ich auch grade. Mein Problem ist, dass das ganze wohl vor allem mit den im Webserver eingestellten Rewrite-Rules zu tun hat, wovon ich aber keinen Plan habe.

    Ich verwende derzeit Contao2Go v2 und habe selbst nichts an Rewrite-Rules geändert. Vermute also, dass die bei mir aktiven Rewrite-Rules von Contao2Go kommen.

    Eine URL wie deine obige http://myhost/my-page/showErrors/1.html funktioniert bei mir. Dass es bei dir nicht geht, liegt also vielleicht an den Rewrite-Rules, die bei dir aktiv sind.

    Versuche ich einen zusätzlichen Paramater anzuhängen, z.B. http://myhost/my-page/showErrors/1/test/2.html, bekomme ich "page not found". Ich vermute also, dass "meine" Rewrite-Rules nur mit einem Parameter klar kommen.

    Ich weiss nicht, ob man generateFrontEndUrl() dazu kriegen kann, die Paramter in der "normalen" Form, also z.B. "showErrors=1&test=2" anzuhängen, oder ob das überhaupt Sinn machen würde.

    Als Workaround könnte man es ja einfach so machen:

    PHP-Code:
    $strUrl $this->generateFrontendUrl($arrPage) . '?showErrors=1&test=2'
    Das funktioniert zumindest, wobei ich mir aber auch nicht sicher bin, ob das die best practice ist, damit die erzeugten URLs dann auch immer, unabhängig von Webserver-Config, Rewrite-Rules und Contao-Einstellungen funktionieren.

  3. #3
    Contao-Nutzer
    Registriert seit
    08.09.2011.
    Beiträge
    23

    Standard

    Ohne alles hier genau gelesen zu haben wäre der Klassiker:

    Einstellungen -> Frontend-Einstellungen -> Ordner-URLs verwenden

    Nur falls ihr das noch nicht aktiviert habt.

  4. #4
    Contao-Nutzer
    Registriert seit
    23.06.2012.
    Beiträge
    72

    Standard

    War bei mir nicht aktiviert, macht aber bezüglich des von mir beschriebenen Problems auch keinen Unterschied. Mit einem Parameter klappt es, mit zweien nicht, egal, ob ich in den Einstellungen die "Ordner-URLs" aktiviere oder nicht...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •