Êrîş di veavakirinên nginx de mimkun e ku tê de şandina PHP-FPM bi veqetandina beşên URL-ê bi karanîna "fastcgi_split_path_info" û pênasekirina guhêrbara jîngehê PATH_INFO pêk tê, lê bêyî ku pêşî hebûna pelê bi karanîna "try_files $fastcgi_script_name" were kontrol kirin. dîrektîfa an "eger (!-f $) document_root$fastcgi_script_name)". Pirsgirêk jî ev e
cih ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^ (. +? \. php) (/.*) $;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
}
Hûn dikarin li ser van rûpelan çareseriya pirsgirêkê di kîtên belavkirinê de bişopînin:
try_files $fastcgi_script_name =404;
Pirsgirêk ji ber xeletiyek dema ku nîşangiran di pelê de manîpule dike çêdibe
Ger dîrektîfa fastcgi_split_path_info dabeşkirina rêça skrîptê bi karanîna birêkûpêkek birêkûpêk-hesas a nû diyar dike (mînak, gelek mînak pêşniyar dikin ku "^(.+?\.php)(/.*)$" bikar bînin), wê hingê êrîşkar dikare piştrast bike ku nirxa vala li guhêrbara jîngehê PATH_INFO hatiye nivîsandin. Di vê rewşê de, bêtir bi darvekirinê
Bi daxwazkirina URLek ku bi rengek diyarkirî hatî çêkirin, êrîşkar dikare bigihîje guheztinek nîşana path_info ber bi byta yekem a avahiya "_fcgi_data_seg", û nivîsandina sifirek li ser vê byte dê bibe sedema tevgera "char* pos". nîşana cîhek bîranînê ya berê ye. Ya din a bi navê FCGI_PUTENV dê daneyên di vê bîranînê de bi nirxek ku êrîşkar dikare kontrol bike binivîsîne. Bîra diyarkirî di heman demê de nirxên guhêrbarên din ên FastCGI hilîne, û bi nivîsandina daneyên wan, êrîşkar dikare guhêrbarek PHP_VALUE ya xeyalî biafirîne û koda xwe bi dest bixe.
Source: opennet.ru