2016-10-22 4 views
0

Meine Ordnerstruktur ist wie folgt Ich habe einen Ordner docs innerhalb dessen Namen ich habe 2 Dateien: all_docs.php und level.phpnginx Rewrite-Datei im virtuellen Verzeichnis

all_docs hat 2 Parameter und ich habe diese Rewrite-Regel:

rewrite ^/doc-([^/]*)-([^/]*)/?$ /doc/all_docs.php?title=$1&lang=$2 last; 

Welche macht für eine uRL wie

all_docs.php?title=fashion&lang=en 
möglich macht

aussehen:

/doc-fashion-en/ 

Das Problem ist, dass ich möchte auch level.php innerhalb doc Ordner zugreifen, aber Nach dem Umschreiben kann ich nicht, weil nginx Anfragen:

/doc-fashion-en/level.php, die nicht

existiert

Ich habe versucht umschreiben ^/doc - ([^ /] ) - ([^ /]) /level.php /doc/level.php?$args;

ohne Erfolg, level.php hat einige Parameter erhalten, die übergeben werden müssen das ist, warum ich $ Args verwendet.

Jede Hilfe wäre

+0

Wie sollte die Anfrage für 'level.php' aussehen? '/ doc-titel-lang/level.php'? –

+0

Ja, genau, Parameter wie level.php? Lang = us & volume = 4 usw – inrob

Antwort

0

Diese Rewrite-Regeln erkannt werden, sollte für Sie arbeiten:

rewrite ^/doc-([^/]+)-([^/]+)/?$ /doc/all_docs.php?title=$1&lang=$2 last; 
rewrite ^/doc-[^/]+-[^/]+/level.php(.*)$ /doc/level.php$1 last; 

statt * mit + Betrachten Sie, wenn Sie sicher, dass es mindestens ein Symbol sein sollte. In der Tat entspricht ^/doc-([^/]*)-([^/]*)/?$/doc--. Nicht sicher, ob das beabsichtigt ist.

Verwandte Themen