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 № 1Przepisanie 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;