Harin yana yiwuwa a cikin saitunan nginx wanda ake aiwatar da turawa zuwa PHP-FPM ta hanyar raba sassan URL ta amfani da "fastcgi_split_path_info" da ma'anar ma'anar yanayin PATH_INFO, amma ba tare da fara duba wanzuwar fayil ɗin ta amfani da "try_files $ fastcgi_script_name" umarnin ko "idan (!-f $) document_root$ fastcgi_script_name)". Matsalar kuma
wuri ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^ (. +? \. php) (/.*) $;
fastcgi_param PATH_INFO $ fastcgi_path_info;
fastcgi_pass php: 9000;
}
Kuna iya bin diddigin ƙudurin matsalar a cikin kayan rarrabawa akan waɗannan shafuka:
try_files $ fastcgi_script_name = 404;
Kuskure ne ke haifar da matsalar yayin sarrafa masu nuni a cikin fayil
Idan umarnin fastcgi_split_path_info ya ƙayyade rarraba hanyar rubutun ta amfani da sabon layi mai saurin magana na yau da kullun (misali, misalai da yawa suna ba da shawarar yin amfani da "^(.+?\.php)(/.*)$"), to mai hari zai iya tabbatar da cewa an rubuta darajar fanko zuwa madaidaicin muhalli PATH_INFO. A wannan yanayin, kara tare da kisa
Ta hanyar neman URL da aka tsara ta wata hanya, mai hari zai iya cimma matsaya na hanyar hanya_info mai nuni zuwa farkon byte na tsarin "_fcgi_data_seg", kuma rubuta sifili zuwa wannan byte zai haifar da motsi na "char * pos" mai nuni zuwa wurin ƙwaƙwalwar ajiya da aka samo a baya. Na gaba da ake kira FCGI_PUTENV zai sake rubuta bayanan a cikin wannan ƙwaƙwalwar tare da ƙimar da maharin zai iya sarrafawa. Ƙwaƙwalwar ƙayyadadden ƙwaƙwalwar ajiya kuma tana adana ƙimar sauran masu canji na FastCGI, kuma ta hanyar rubuta bayanan su, maharin na iya ƙirƙirar ƙagaggen madaidaicin PHP_VALUE kuma ya cimma aiwatar da lambar su.
source: budenet.ru