Ҳамла дар конфигуратсияҳои nginx имконпазир аст, ки дар он интиқол дар PHP-FPM тавассути тақсим кардани қисмҳои URL бо истифода аз "fastcgi_split_path_info" ва муайян кардани тағирёбандаи муҳити PATH_INFO, аммо бидуни тафтиши аввал мавҷудияти файл бо "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