相关配置:
location /myapp {
root /home/me/myapp/www;
try_files $uri $uri/ /myapp/index.PHP?url=$uri&$args;
location ~ \.PHP {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.PHP;
include /etc/Nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.PHP;
}
}
我在/ home / me / myapp / www中绝对有一个文件foo.html,但是当我浏览到/myapp/foo.html时,它由PHP处理,这是try_files列表中的最终回退.
为什么会这样?
最佳答案
如果您浏览到/myapp/foo.html,Nginx会检查/home/me/myapp/www/myapp/foo.html上的文件.当它在那里找不到它时,它会继续执行try_files列表中的后备.
如果您需要Nginx来检查/home/me/myapp/www/foo.html上的文件,那么在您的用例中您需要使用别名而不是root.这是解决方案……
location /myapp {
alias /home/me/myapp/www;
try_files $uri $uri/ /myapp/index.PHP?url=$uri&$args;
location ~ \.PHP {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.PHP;
include /etc/Nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.PHP;
}
}
请注意,有一个longstanding bug别名和try_files不能一起工作.另请注意,使用别名可能会破坏配置的其他部分,例如PHP处理!
原文地址:https://www.jb51.cc/nginx/435427.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。