/ / nginx + php-fpm Reguła zapisu nie działa - nginx, przepisuj

nginx + php-fpm Reguła przepraszania nie działa - nginx, przepisz

Mam ten 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;
}

Ale kiedy próbuję otworzyć adres URL, http://example.com/download/d3ef6bbeaff9b429680bca646e8ee1cf/video.mp4 To wraca 404 Not Found Próbowałem rule w jakimkolwiek location, ale to nie pomogło.
Bezpośredni link do pliku http://example.com/download.php pracuje, co trzeba zrobić dla pracy rewrite ?
Widziałem wiele wątków na ten temat, ale rozwiązania mi nie pomogły, co się stało?

Na serwerze nginx + php-fpm

Odpowiedzi:

1 dla odpowiedzi № 1

Przepisanie Nginxa zawsze pasuje do pełnego URI, który zaczyna się od ukośnika. Więc musisz naprawić swój przepis:

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