"fastcgi_split_path_info" භාවිතයෙන් URL හි කොටස් වෙන් කිරීම සහ PATH_INFO පරිසර විචල්යය නිර්වචනය කිරීම මගින් PHP-FPM වෙත යොමු කිරීම සිදු කරන nginx වින්යාසය තුළ ප්රහාරය සිදු කළ හැක, නමුත් පළමුව "try_files $fastcgi_script_ භාවිතා කර ගොනුවේ පැවැත්ම පරීක්ෂා නොකර. විධානය හෝ "if (!-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 එකක් ඉල්ලා සිටීමෙන්, ප්රහාරකයෙකුට “_fcgi_data_seg” ව්යුහයේ පළමු බයිටයට path_info පොයින්ටරයේ මාරුවක් ලබා ගත හැකි අතර, මෙම බයිටයට බිංදුවක් ලිවීම “char* pos” චලනය වීමට හේතු වේ. කලින් ස්ථානගත වූ මතක ප්රදේශයකට දර්ශකය. මීළඟ FCGI_PUTENV ලෙස හඳුන්වන මෙම මතකයේ ඇති දත්ත ප්රහාරකයාට පාලනය කළ හැකි අගයක් සමඟ උඩින් ලියයි. නිශ්චිත මතකය අනෙකුත් FastCGI විචල්යවල අගයන් ද ගබඩා කරන අතර, ඒවායේ දත්ත ලිවීමෙන්, ප්රහාරකයෙකුට මනඃකල්පිත PHP_VALUE විචල්යයක් නිර්මාණය කර ඒවායේ කේතය ක්රියාත්මක කිරීමට හැකි වේ.
මූලාශ්රය: opennet.ru