Энэ халдлага нь "fastcgi_split_path_info" ашиглан URL-ын хэсгүүдийг салгаж, PATH_INFO орчны хувьсагчийг тодорхойлох замаар PHP-FPM рүү дамжуулах nginx тохиргоонд боломжтой боловч эхлээд "try_files $fastcgi_script_name" ашиглан файл байгаа эсэхийг шалгахгүйгээр хийх боломжтой. заавар эсвэл “хэрэв (!-f $) document_root$fastcgi_script_name)". Асуудал бас л байна
байршил ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^ (. +? \. php) (/.*) $;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php: 9000;
}
Та эдгээр хуудсан дээрх түгээлтийн багц дахь асуудлын шийдлийг хянах боломжтой.
try_files $fastcgi_script_name =404;
Асуудал нь файл дахь заагчийг удирдах үед гарсан алдаанаас үүдэлтэй
Хэрэв fastcgi_split_path_info заавар нь шинэ мөрөнд мэдрэмтгий тогтмол илэрхийлэл ашиглан скриптийн замыг хуваахыг зааж өгсөн бол (жишээлбэл, "^(.+?\.php)(/.*)$" ашиглахыг санал болгож байна), халдагчид хоосон утгыг PATH_INFO орчны хувьсагч руу бичнэ. Энэ тохиолдолд цааш нь гүйцэтгэлийн дагуу
Тодорхой хэлбэрээр форматлагдсан URL-г хүссэнээр халдагчид path_info заагчийг "_fcgi_data_seg" бүтцийн эхний байт руу шилжүүлэх боломжтой бөгөөд энэ байт руу тэг бичих нь "char* pos"-ын хөдөлгөөнд хүргэнэ. өмнө нь байрлуулсан санах ойн хэсэг рүү заагч. Дараагийн FCGI_PUTENV нь энэ санах ой дахь өгөгдлийг халдагчийн хянаж чадах утгыг дарж бичнэ. Заасан санах ой нь бусад FastCGI хувьсагчийн утгуудыг хадгалдаг бөгөөд өгөгдлөө бичснээр халдагчид зохиомол PHP_VALUE хувьсагч үүсгэж, кодоо гүйцэтгэх боломжтой.
Эх сурвалж: opennet.ru