ΠΡΠ°ΠΊΠ°ΡΠ° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½Π° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π° nginx, Π² ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ΡΠΎ ΠΊΡΠΌ PHP-FPM ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΡΠ΅Π· ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠ°ΡΡΠΈ ΠΎΡ URL Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° βfastcgi_split_path_infoβ ΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° PATH_INFO, Π½ΠΎ Π±Π΅Π· ΠΏΡΡΠ²ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° βtry_files $fastcgi_script_nameβ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΈΠ»ΠΈ β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, ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π½Π°ΡΠΈΠ½, Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΈΠ·ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ path_info ΠΊΡΠΌ ΠΏΡΡΠ²ΠΈΡ Π±Π°ΠΉΡ Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° β_fcgi_data_segβ ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΡΠ»Π° Π² ΡΠΎΠ·ΠΈ Π±Π°ΠΉΡ ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° βchar* posβ ΡΠΊΠ°Π·Π°ΡΠ΅Π» ΠΊΡΠΌ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΎΠ±Π»Π°ΡΡ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ°. Π‘Π»Π΅Π΄Π²Π°ΡΠΈΡΡ, Π½Π°ΡΠ΅ΡΠ΅Π½ FCGI_PUTENV, ΡΠ΅ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ Π² ΡΠ°Π·ΠΈ ΠΏΠ°ΠΌΠ΅Ρ ΡΡΡ ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°. ΠΠΎΡΠΎΡΠ΅Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° FastCGI ΠΈ ΠΊΠ°ΡΠΎ Π½Π°ΠΏΠΈΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΡΠΈΠΊΡΠΈΠ²Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° PHP_VALUE ΠΈ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ²ΠΎΡ ΠΊΠΎΠ΄.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru