मुझे यह विश्वास है,
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;
}
लेकिन जब मैं खुले यूआरएल की कोशिश करता हूं, http://example.com/download/d3ef6bbeaff9b429680bca646e8ee1cf/video.mp4
यह वापसी है 404 Not Found
मैंने डालने की कोशिश की rule
किसी में location
, लेकिन यह मदद नहीं की है।
फ़ाइल के लिए सीधा लिंक http://example.com/download.php
काम कर रहा है, काम के लिए क्या करना चाहिए rewrite
?
मैंने इसके बारे में कई सूत्र देखे, लेकिन समाधान ने मेरी मदद नहीं की, क्या गलत है?
सर्वर nginx + php-fpm पर
उत्तर:
उत्तर № 1 के लिए 1नग्नेक्स का पुनर्लेखन हमेशा पूर्ण यूआरआई से मेल खाता है जो स्लैश से शुरू होता है। इसलिए आपको अपने पुनर्लेखन को ठीक करने की आवश्यकता है:
rewrite "^/download/([0-9a-f]{32})/(.+)$" /download.php?h=$1&f=$2 last;