Ergebnis 1 bis 11 von 11

Thema: Pfad auf Datei umleiten

  1. #1
    Contao-Nutzer
    Registriert seit
    02.12.2017.
    Beiträge
    140

    Standard Pfad auf Datei umleiten

    Hallo zusammen,

    ich arbeite gerade an einer Erweiterung.
    Jedenfalls habe ich, zum grundlegenden Testen, gerade beispielsweise eine Seite in der Struktur angelegt.
    Auf diese kann ich auch folgendermaßen zugreifen: [meineurl].de/extension

    Über meine Erweiterung prüfe ich hier auf diese Seite und gebe (ähnlich wie bei REST) anhand des HTTP Requests unterschiedliche Informationen aus.

    Nun möchte ich z.B. auch den folgenden Pfad aufrufen können: [meineurl].de/extension/user/1

    Anhand dessen möchte ich mit den Informationen "user" und "1" weiterarbeiten.
    Das funktioniert auch.
    Mein Script (für die extension-Page) wird korrekt aufgerufen und ausgeführt.

    Doch sobald ich nicht mehr folgende URL aufrufe: [meineurl.de/extension
    sondern: [meineurl].de/extension/ oder eben sogar mit weiteren Anhämngen (/user/1)

    dann führt er weiterhin mein Script aus, hängt an das Ende der Seite jedoch noch einen Error 404.


    Der Error ist prinzipiell ja eigentlich logisch, da er angegebene Pfad ja nicht existiert.
    Zum einen frage ich mich allerdings, wieso er trotzdem mein Skript ausführt.

    Zum anderen frage ich mich, wie ich den Fehler beseitigen kann.
    Normalerweise würde man dies ja über die htaccess realisieren, doch ich bin mir hier gerade nicht sicher, wie ich dies in Contao nun realisiere.

    Kann mir jemand weiterhelfen?

  2. #2
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Du musst alle Parameter in deinem Frontend Modul verarbeiten. Vergisst Du eins, kommt ein 404.

    Gesendet von meinem L52 mit Tapatalk
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  3. #3
    Contao-Nutzer
    Registriert seit
    02.12.2017.
    Beiträge
    140

    Standard

    Danke für deine Antwort.

    Kannst du das noch ein wenig genauer erläutern?
    Wie genau müsste ich die Parameter verarbeiten?

  4. #4
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    In der generate-Funktion im FE-Modul steht z.B.:
    PHP-Code:
    // FE-Modus: URL mit allen möglichen Parametern auflösen
    \Input::setGet('user', \Input::get('user')); // Parameter user 
    Ich benutze bei mir einen Hook um das Ganze noch weiter zu verkürzen:
    [meineurl].de/extension/user/1
    wird bei mir:
    Code:
     [meineurl].de/seite/1.html
    D.h. ich kürze den Parameter heraus und übergebe nur die ID. Damit ich mit \Input nicht ins Leere greife, modifiziere ich im Hook getPageIdFromUrl die Parameter. Da kommt user wieder hinzu. Suche mal nach dem Hook hier im Forum.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  5. #5
    Contao-Nutzer
    Registriert seit
    02.12.2017.
    Beiträge
    140

    Standard

    Damit klappt es wunderbar.
    Vielen Dank !

  6. #6
    Contao-Nutzer
    Registriert seit
    02.12.2017.
    Beiträge
    140

    Standard

    Mal nebenbei gefragt,
    weißt du zufällig, wie es nicht nur mit GET-Requests, sondern auch mit POST und DELETE-Requests aussieht?

    Für einen POST-Request benötige ich scheinbar einen Request-Token?
    Hierzu konnte ich allerdings noch keine genaueren Informationen finden.

    Noch weniger konnte ich leider zum DELETE-Request finden.
    Dieser scheint bei mir bislang über $_SERVER['REQUEST_METHOD'] garnicht erst erkannt zu werden?

  7. #7
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Zum Request Token habe ich hier was gefunden.
    DELETE kenne ich nicht. Bei POST würde ich mal behaupten, das Du die Parameter ganz normal abfragen kannst, ohne ein 404-Problem zu bekommen. Das 404-Problem gibt es ja nur, wenn man eine URL zusammnenbaut, die per se schon nicht vorhanden sein könnte, z.B. domain.de/seite/wert/wert/wert.html. Normalerweise würdest Du ja bauen: domain.de/seite.html?parameter=wert&parameter=wert&parameter =wert. Bei POST bekommst Du die Werte ja ganz normal geliefert und kannst sie mit \Input::post('parameter') abfragen.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  8. #8
    Contao-Nutzer
    Registriert seit
    02.12.2017.
    Beiträge
    140

    Standard

    Bei POST habe ich jedoch kein 404 Problem, sondern er schmeißt mir einen Contao Fehler raus:

    Das Request-Token konnte nicht validiert werden. Der Fehler tritt bei einer POST-Anfrage ohne gültiges Request-Token auf. In Contao 2.10 wurde die Referer-Prüfung durch ein Request-Token-System ersetzt. Wenn das Problem anhält, verwenden Sie eventuell eine inkompatible Drittanbieter-Erweiterung oder haben Ihre Contao-Installation nicht vollständig aktualisiert.
    Scheinbar muss hier ein Request-Token mitgesendet werden, allerdings finde ich hier kaum eine Dokumentation zu.

  9. #9
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.947

    Standard

    Das Request-Token bekommst Du über die Konstante

    PHP-Code:
    REQUEST_TOKEN 
    (siehe https://github.com/contao/core-bundl...ework.php#L446 und https://github.com/contao/core-bundl...questToken.php)
    Geändert von fiedsch (09.12.2017 um 09:37 Uhr)
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  10. #10
    Contao-Nutzer
    Registriert seit
    02.12.2017.
    Beiträge
    140

    Standard

    Verstehe.
    Wie sieht es denn aus, wenn ich einen POST-Request von außerhalb sende?
    Da liegt nämlich gerade mein Problem, ich habe ja von außerhalb nicht die Möglichkeit
    den Token zu erzeugen, oder habe ich hier jetzt etwas übersehen?

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.254
    Partner-ID
    10107

    Standard

    Man kann den Request Token in den System Einstellungen deaktivieren. Man kann aber auch nur für bestimmte Einstiegspunkte bzw. eigene Routes die Überprüfung des Request Tokens deaktivieren. Ob man das auch für reguläre Seitenaufrufe machen kann bin ich mir nicht sicher.

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
  •