J'essaie de convertir une réécriture très simple d'une version précédente de nginx vers la version actuelle, comme ci-dessous:
location / {
if ( !-f $request_filename ) {
rewrite ^/([a-z]*)$ /index.php?action=$1;
rewrite ^/([a-z]*)/(.*)$ /index.php?action=$1&item=$2;
}
}
Voilà jusqu'où je suis allé. La page d'index apparaît, mais toute page qui devrait être réécrite comme ci-dessus, jette à la place des 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;
}
}
Qu'est-ce que je fais mal ici?
File not found.
si j'utilise l'URI/page
ou/page/id
try_files $uri $uri/ /index.php
?try_files $uri $uri/ /index.php?$args
. Vous devriez pouvoir obtenir l'URL avec$_SERVER['REQUEST_URI']
. $ _GET devrait fonctionner normalement.Réponses:
Cela devrait fonctionner:
la source
/page1/item
renverront index.phptry_files $uri $uri/
fonctionne avec des fichiers statiques?