Я пытаюсь создать сценарий загрузки, который улавливает все запросы в/files/и заставляет загружать. Скрипт полностью работает и загружает любые файлы, которые я бросаю на него. Проблема заключается в том, что, когда я пытаюсь передать файл с расширением .php через try_files, следующие Nginx конфигурации путает:nginx: расширение php-файла не работает с try_files
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl;
listen [::]:443 ssl;
server_name _;
root /var/www/localhost/public_html/;
index index.php index.html index.htm index.txt;
location /files/ {
try_files $uri $uri/ /.thedownloadscript.php?file=$uri;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /public_html$fastcgi_script_name;
include fastcgi_params;
}
ssl_certificate /var/www/server.crt;
ssl_certificate_key /var/www/server.key;
}
/files/file.txt загружает файл.
/files/script.php бросает 404.
Оба пути должны быть переданы в сценарий загрузки, но не являются.
Я попытался удалить try_files из блока «location ~ .php $», но это делает его вывод «Нет указанного входного файла».
Я надеюсь, что кто-то может помочь мне здесь.
Заранее спасибо.
Спасибо, это работает точно так же, как я хочу его. – Yani