NGINX rewrite Problem

c3x

New Member
#1
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
#4
Hatte nur einen Schreibfehler, weswegen die Seite nicht geladen werden konnte. Achte jetzt etwas genauer drauf, wenn ich Copy&Paste mache ...
 

c3x

New Member
#5
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