Ergebnis 1 bis 7 von 7

Thema: Seite nicht gefunden 404 mit eigenem .htaccess

  1. #1
    Gesperrt
    Registriert seit
    20.10.2011.
    Beiträge
    163

    Standard Seite nicht gefunden 404 mit eigenem .htaccess

    Moin Zusammen...

    Mir ist etwas nach dem Update auf Contao 3.1.1 aufgefallen (vorher Contao 3.0.irgendwas).

    Und zwar, habe ich ein Modul gebaut, in dem ich Referenzen anzeige.

    http://domain.de/referenzen.html -> Alle Referenzen (gruppiert nach Jahr)
    http://domain.de/referenzen/2012/kunde/projekt.html -> Projektseite

    Um das so zu realisieren, habe ich folgendes in der .htaccess hinzugefügt:

    Code:
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule referenzen/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)\.html$ index.php?jahr=$1&auftraggeber=$2&projekt=$3 [L]
    Das führe zu einem 404.

    Dann dachte ich, ich mach es mal klassisch:

    Code:
    http://domain.de/referenzen.html?jahr=2012&kunde=kunde-a&projekt=projekt-a
    Habe das aufgerufen, und es hat funktioniert.

    Da ich aber gerne auf die angaben "jahr", "kunde" und "projekt" verzichten würde, habe ich die .htaccess folgendermassen angepasst:

    Code:
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule referenzen/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)\.html$ referenzen.html?jahr=$1&auftraggeber=$2&projekt=$3 [L]
    Im grunde ist das ja dann nicht anderes als würde ich http://domain.de/referenzen.html?jah...jekt=projekt-a direkt aufrufen.

    Dennoch kommt in diesem Fall wieder ein 404 Fehler....

    Habe ich etwas übersehen? Denn in der Contao 3.0.irgendwas Version, ging es ohne Probleme.

    Grüße - Chris

  2. #2
    Gesperrt
    Registriert seit
    20.10.2011.
    Beiträge
    163

    Standard

    Kann es sein das dieses dafür verantwortlich ist:

    https://github.com/contao/core/issues/4277

  3. #3
    Gesperrt
    Registriert seit
    20.10.2011.
    Beiträge
    163

    Standard

    Ich weis ja, das es ein Community Forum ist.. Aber hat denn wirklich keiner eine Idee?
    So weit weg von der Realität kann diese Frage gar nicht sein

  4. #4
    Contao-Nutzer
    Registriert seit
    14.03.2012.
    Ort
    Berlin
    Beiträge
    225

    Standard

    Wieso benutzt du nicht Contao um deine URL's zu erzeugen? Eine Htaccess Regel brauchst du dafür nicht.

    Du brauchst in der Seitenstruktur eine Seite "Referenzen", wo du deine Erweiterung bzw. das FE-Modul einbindest.
    Dies wäre dann deine Listenansicht. Die Detailansicht kannst du auf der gleichen Seite ausgeben lassen, oder auch eine andere (Unter)-Seite hierfür benutzen.
    Innherhalb der Listenansicht erzeugst du dann die Links auf die Detail-Ansichten:
    PHP-Code:

    global $objPage;
    \
    Controller::generateFrontendUrl($objPage->row(),'/2012/kunde/'.$objReferenzen->alias); 
    Siehe auch: https://community.contao.org/de/show...ntendUrl%28%29

    $objPage->row() gibt im FE die Zeile der aktuellen Seite zurück (also die der Listenansicht), wodurch schonmal der erste Part der neuen URL erzeugt wird.
    Über den zweiten Parameter kannst du dann weitere URL-Parameter hinzufügen, die an die URL der Listenansicht angefügt werden.
    $objReferenzen->alias wäre dann der Alias der jeweiligen Referenz.



    Im FE Modul der Detailansicht kannst du dann die GET-Parameter auslesen & verarbeiten.
    PHP-Code:
    \Input::get('get-parameter'
    Der auto_item Parameter ist manchmal auch ganz nützlich: \Input::get('auto_item')

  5. #5
    Gesperrt
    Registriert seit
    20.10.2011.
    Beiträge
    163

    Standard

    Hallo jk1, wenn ich dich richtig verstehe, generiert generateFrontendUrl() in etwa das selbe wie möchte... Kann ich also mal testen.
    Ich bin mir aber nicht ganz sicher ob ich das Problem richtig beschrieben habe. Denn im Grunde ist get ja immer nach key=value aufgebaut.
    Ich habe aber in der Adresse value/value/value (2013/kundeA/projektA), welche ich dann per .htaccess zu key=value&key=value&key=value (jahr=2013&kunde=kundeA&projekt=projektA) ändere.

    Ich möchte also in der URL keine key's haben, sondern nur values.

    wie gesagt.. Ich teste das mal mit deinem Vorschlag, und gebe Feedback ob das mein 404 Problem löst.

    Grüße & Danke

  6. #6
    Gesperrt
    Registriert seit
    20.10.2011.
    Beiträge
    163

    Standard

    Wie ich gedacht habe, ist das Problem nicht, das die URL Falsch generiert wird...

    Auch Key & Value stehen zur Verfügung (allerdings eben auf der 404 Seite)

    Ich habe auch schon

    Code:
    RewriteRule ^referenzen/([^/]*)/([^/]*)/([^/]*)\.html$ /referenzen.html?jahr=$1&kunde=$2&projekt=$3 [L]
    versucht, das funktioniert genau so wenig.....

    Sobald ich nicht listenseite.html?jahr=2012&kunde=kundeA&projekt=pr ojektA mache, kommt immer nen 404...

  7. #7
    Gesperrt
    Registriert seit
    20.10.2011.
    Beiträge
    163

    Standard

    Die Lösung ist übrigens:

    PHP-Code:
    foreach (array_keys($_GET) as $k)
    { \
    Input::get($k);} 
    Vielen dank an xat- im Chat für diesen Überaus hilfreichen Tipp!

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
  •