2016-04-25 5 views
2

ich Nginx Regel, die gut funktioniert:Wie Verzeichnis und die Dateien im Inneren auszuschließen - umschreiben

rewrite ^/myapp/(.*)/$ /myapp/good-file.php?param=$1; 

Aber wenn ich besuchen einige Verzeichnis unter/myapp/lädt er über .php instad echte Unterverzeichnis das hat seine eigene index.php, Beispiel bekam, wenn ich unter:

http://www.example.com/myapp/sub-directory/ 

es lädt die Dinge aus gut file.php weil Rewrite-Regel funktioniert (es muss sein).

Wie kann ich/myapp/Unterverzeichnis/und Dateien darin ausschließen, wenn ich diesen Knick des Neuschreibens habe?

Vielen Dank für die bereitgestellten Informationen und Hilfe!

+1

Kennen Sie die Bedingung "Rewrite Condition" und "Rewrite Rule"? Sie müssen dem Server mitteilen, dass, wenn er nicht als Verzeichnis gefunden wird, die Regel angewendet wird! –

Antwort

1

Sie können eine Direktive try_files verwenden, um auf das Vorhandensein von Dateien und Verzeichnissen zu prüfen, bevor Sie eine Standardaktion ausführen (z. B. Ihre Rewrite-Regel). Details siehe this document.

Eine mögliche Implementierung ist:

location /myapp { 
    try_files $uri $uri/ @rewrite; 
} 
location @rewrite { 
    rewrite ^/myapp/(.*)/$ /myapp/good-file.php?param=$1 last; 
} 

Die oben vorausgesetzt, dass Sie haben eine root und index definiert, und ein Standort-Dateien mit .php Endung zu behandeln.

Verwandte Themen