/ / nginx + php-fpm La règle de réécriture ne fonctionne pas - nginx, réécriture

nginx + php-fpm La règle de réécriture ne fonctionne pas - nginx, rewrite

J'ai cette conf,

    rewrite "^download/([0-9a-f]{32})/(.+)$" /download.php?h=$1&f=$2 last;
location / {
index index.html;
}
location ~ .php$ {
fastcgi_pass unix:/var/run/php-fpm.apache.sock;
fastcgi_index index.html;
fastcgi_param SCRIPT_FILENAME $root_path$request_filename;
include fastcgi_params;
}

Mais quand j'essaye d'ouvrir l'url, http://example.com/download/d3ef6bbeaff9b429680bca646e8ee1cf/video.mp4 C'est le retour 404 Not Found J'ai essayé de mettre rule dans tous location, mais cela n’a pas aidé.
Lien direct vers le fichier http://example.com/download.php fonctionne, que faut-il faire pour le travail rewrite ?
J'ai vu beaucoup de choses à ce sujet, mais les solutions ne m'ont pas aidé, qu'est-ce qui ne va pas?

Sur le serveur nginx + php-fpm

Réponses:

1 pour la réponse № 1

La réécriture de Nginx correspond toujours à l’URI complet qui commence par une barre oblique. Vous devez donc corriger votre réécriture:

rewrite "^/download/([0-9a-f]{32})/(.+)$" /download.php?h=$1&f=$2 last;