NGINX rewrite Problem

Dieses Thema im Forum "Installation und Konfiguration" wurde erstellt von c3x, 20. Jan. 2015.

  1. c3x

    c3x New Member

    Hallo.
    Ich habe ein Problem mit rewrite bei NGINX. Habe jetzt schon etliche Webseiten und Tutorials durch, aber keine Lösung gefunden und hoffe hier auf Unterstützung.

    Ich habe diese Variante
    Code:
    location / {
      rewrite ^/verzeichnis1/? /datei1.php last;
      rewrite ^/verzeichnis2/? /datei2.php last;
      rewrite ^/verzeichnis3/? /datei3.php last;
      rewrite ^/verzeichnis4/? /datei4.php last;
    }
    
    als auch diese Variante probiert
    Code:
    if (!-e $request_filename) {
      rewrite ^/verzeichnis1/? /datei1.php last;
      rewrite ^/verzeichnis2/? /datei2.php last;
      rewrite ^/verzeichnis3/? /datei3.php last;
      rewrite ^/verzeichnis4/? /datei4.php last;
    }
    
    In beiden Fällen passiert folgendes:

    Aufruf domain.tld/verzeichnis1 - funktioniert
    Aufruf domain.tld/verzeichnis2 - funktioniert nicht (404 not found)
    Aufruf domain.tld/verzeichnis3 - funktioniert nicht (404 not found)
    Aufruf domain.tld/verzeichnis4 - funktioniert

    datei1.php bis datei4.php sind aber vorhanden.

    Hat jemand einen Tipp für mich?

    Gruß
    Torsten
     
  2. c3x

    c3x New Member

    Urgs .. sorry ... hatte nen Fehler übersehen.

    Hat sich erledigt.
     
  3. wotan2005

    wotan2005 Member

    kannst du uns aufklären, was du falsch gemacht hast?
     
  4. c3x

    c3x New Member

    Hatte nur einen Schreibfehler, weswegen die Seite nicht geladen werden konnte. Achte jetzt etwas genauer drauf, wenn ich Copy&Paste mache ...
     
  5. c3x

    c3x New Member

    Aber jetzt habe ich doch noch ein rewrite Problem:

    Meine Datenbank hat unter anderem folgende Einträge:

    id, niceurl, info, kategorie, [...]

    Ich habe eine Übersichtsseite wo alle Datensätze zu Kategorie X angezeigt werden.
    Dieses biege ich mit rewrite wie folgt um:

    Code:
    if (!-e $request_filename) {
      rewrite ^/kategorie/? /kategorie.php last;
    }
    
    Das funktioniert ja auch problemlos, wenn ich "domain.tld/kategorie" aufrufe.

    Jetzt will ich aber zu den jeweiligen Datensätzen auch eine Detailseite einrichten, die wie folgt aufgebaut ist:

    "domain.tld/kategorie/niceurl"

    Als rewrite habe ich folgendes deklariert:

    Code:
    location / {
      rewrite ^/kategorie/(.*)$ /detail.php?niceurl=$1? last;
    }
    
    Das funktioniert leider nicht.
    Den Pfad "domain.tld/kategorie/niceurl" kann ich zwar aufrufen, aber es bleibt die Seite von kategorie.php bestehen und es wird nicht die detail.php aufgerufen.


    Wo ist hier mein Denkfehler?


    Gruß
    Torsten
     
  6. Till

    Till Administrator

    Hast Du mal statt location / location /kategorie/ versucht?
     
  7. c3x

    c3x New Member

    Ja, habe ich probiert. Immer das selbe Ergebnis: Funktioniert nicht ...
     

Diese Seite empfehlen