NGINX rewrite Problem

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
 

c3x

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

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
 

Werbung

Top