NFinx対応ThinkPHPのURLを書き換えてPATHINFOの方法と共有させます。


インターネットで多くの方法を探しましたが、効果がないので、一日研究しました。下記の構成によって、「URL_」を完璧にサポートすることができます。MODEL'=>2の場合は
 
location /project/ {
index index.php;
if (!-e $request_filename) {
rewrite ^/project/(.*)$ /project/index.php/$1 last;
break;
}
}

location ~ .+\.php($|/) {
set $script $uri;
set $path_info "/";
if ($uri ~ "^(.+\.php)(/.+)") {
set $script $1;
set $path_info $2;
}

fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php?IF_REWRITE=1;
include /APMServ/nginx/conf/fastcgi_params;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root/$script;
fastcgi_param SCRIPT_NAME $script;
}
ここでまずプロジェクト下の要求をindex.phpに転送して処理します。つまりThinkPHPの単一の入り口ファイルです。phpファイルに対する要求をfastcgiに渡して処理し、PATH_を追加します。INFOのサポートNFIxを再起動したら、http://localhost/project/Index/insertを選択します。http://localhost/project/index.php/Index/delete このようなURLは正しくアクセスできます。もう一つ注意したいのは、Ngixプロファイルの中でifと後ろの括弧の間にスペースがあります。そうでないとunknown directiveエラーを報告します。