nginx:php文件扩展名不适用于try\u文件
我正在尝试制作一个下载脚本,它捕获对/files/的所有请求并强制下载。脚本完全可以工作,并下载我抛出的任何文件。问题是,当我试图通过try_文件传递扩展名为.php的文件时,以下nginx config会出错:nginx:php文件扩展名不适用于try\u文件,php,nginx,Php,Nginx,我正在尝试制作一个下载脚本,它捕获对/files/的所有请求并强制下载。脚本完全可以工作,并下载我抛出的任何文件。问题是,当我试图通过try_文件传递扩展名为.php的文件时,以下nginx config会出错: server { listen 80 default_server; listen [::]:80 default_server; listen 443 ssl; listen [::]:443 ssl; server_name _; ro
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
这两个路径都应该传递给下载脚本,但不是
我曾尝试从“location~.php$”块中删除try_文件,但这会使它输出“未指定输入文件”
我希望有人能帮我
提前感谢。任何正则表达式位置块优先于同一级别的前缀位置块,除非后者使用
^
修饰符
有关详细信息,请参阅
尝试:
请注意,
location^~/files/
块是前缀位置(而不是正则表达式位置)。任何正则表达式位置块优先于同一级别的前缀位置块,除非后者使用^
修饰符
有关详细信息,请参阅
尝试:
请注意,
location^~/files/
块是一个前缀位置(而不是regex位置)。根据nginx最佳实践,您应该隔离regexp位置:
location / {
location ~ \.php$ {
...
}
}
location /files/ {
try_files $uri $uri/ /.thedownloadscript.php?file=$uri;
}
根据nginx最佳实践,您应该隔离regexp位置:
location / {
location ~ \.php$ {
...
}
}
location /files/ {
try_files $uri $uri/ /.thedownloadscript.php?file=$uri;
}