openResty 与 nginx 部分变量和指令的差异疑惑
1、try_files 指令 openResty 对捕获状态码无效。
我输入的 /index.php/hello/world
,openResty
200 返回了 /index.php/hello/world-/index.php/hello/world
。nginx
按我预期的返回了 404
。为什么?
2、$fastcgi_script_name
的差异nginx
是 /index.php
openResty
是 /index.php/hello/world
还有就是 bt面板
自带的 pathinfo
解析方式
set $real_script_name $fastcgi_script_name;
# nginx 的 $fastcgi_script_name 只是入口脚本 /index.php
# openResty 的 $fastcgi_script_name 是 $uri /index.php/hello/world
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
这处理模式只适用 openResty
的 $fastcgi_script_name
,nginx
的 $fastcgi_script_name
并不会携带 /hello/world
路径信息,还是得使用 fastcgi_split_pathinfo
指令才行,这是什么鬼?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论