我的请求看起来像这样
domain.com/lib/browser/detect.js
现在在内部我想服务/lib/browser/detect.php
我的 Nginx conf 看起来像这样
location = /lib/browser/detect.js {
try_files non-existent /lib/browser/detect.php;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+?\.php)(/.*);
fastcgi_read_timeout 900s;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Nginx 强制我的浏览器下载这个文件。
尝试使用该
rewrite
指令,而不是try_files
因为它仅用于服务器静态文件。这样的事情可能会做到这一点:
在
rewrite
这种情况下,可能可以匹配任何东西,因为它已经在精确匹配位置块内。您还可以在rewrite
指令中进行匹配并将其从位置块中取出并放入服务器块中,就像我在此处的测试中所做的那样:否则,这是 alpine linux 上 nginx 和 php-fpm 包的默认配置。fastcgi.conf 文件的内容是:
到目前为止我发现的唯一方法是这个