インターネットで多くの方法を検索しましたが、うまくいきませんでした。一日かけて調べた結果、「URL_MODEL」=> 2 の状況は次の構成で完全にサポートできることがわかりました
コードをコピーしてください。コードは次のとおりです。
location /project/ {
indexindex.php;
if (!-e $request_filename) {
rewrite ^/project/(.*)$ /project/index.php/$1 last ;
break;
}
}
location ~ .+.php($|/) {
set $path_info "/"; (/.+)") {
set $script $1;
set $path_info $2;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php?IF_REWRITE=1;
include /APMServ/nginx/conf/fastcgi_params ;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root/$ script;
ここでは、プロジェクト内のすべてのリクエストが、単一のエントリ ファイルである、index.php に転送されます。 ThinkPHP のリクエストは、処理のために fastcgi に渡され、PATH_INFO のサポートが追加されます。
Nginx を再起動すると、http://localhost/project/Index/insert や http://localhost/project/index.php/Index/delete などの URL に正しくアクセスできるようになります。
もう 1 つ注意すべき点は、Nginx 設定ファイル内の if と後続のかっこの間にスペースが必要であることです。そうしないと、不明なディレクティブ エラーが報告されます。