Чабуул nginx конфигурацияларында мүмкүн, мында PHP-FPMге багыттоо URL бөлүктөрүн “fastcgi_split_path_info” аркылуу бөлүү жана PATH_INFO чөйрө өзгөрмөсүн аныктоо аркылуу, бирок алгач “try_files $fastcgi_script_name” аркылуу файлдын бар экенин текшербестен ишке ашырылат. директивасы же “if (!-f $) document_root$fastcgi_script_name)". Маселе дагы
location ~ [^/]\.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 өзгөрмөсүн түзүп, алардын кодунун аткарылышына жетише алат.
Source: opennet.ru