Ich versuche, ein sehr einfaches Umschreiben von einer früheren Nginx-Version in die aktuelle Version zu konvertieren, die wie folgt aussieht:
location / {
if ( !-f $request_filename ) {
rewrite ^/([a-z]*)$ /index.php?action=$1;
rewrite ^/([a-z]*)/(.*)$ /index.php?action=$1&item=$2;
}
}
So weit bin ich gekommen. Die Indexseite wird angezeigt, aber jede Seite, die wie oben beschrieben umgeschrieben werden sollte, wirft stattdessen 404:
server {
listen 80 default;
root /var/www;
index index.php;
server_name _;
location / {
try_files $uri $uri/ /index.php?action=$uri&item=$args;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
Was mache ich hier falsch?
File not found.
wenn ich entweder URI/page
oder/page/id
try_files $uri $uri/ /index.php
?try_files $uri $uri/ /index.php?$args
. Sie sollten in der Lage sein, die URL mit zu erhalten$_SERVER['REQUEST_URI']
. $ _GET sollte normal funktionieren.Antworten:
Das sollte funktionieren:
quelle
/page1/item
die index.phptry_files $uri $uri/
mit statischen Dateien funktioniert?