nginx+thinkphpでpathinfoモードをサポートしない解決

1686 ワード

nginx環境問題は2日間やって、ネット上の多くの人の投稿がコピーして貼るか、貼っていないか、自分で「ははは、私は自分で解決した」などと書いていることに気づいて、私はこれらの投稿した同胞を軽蔑して、あなたはあなたが質問したと言って、問題が解決しても説明しません.まだ検索の前のページで、答えが必要な人の気持ちを考えたことがないと思います.喜んで答えを見てみると、貼り付けていないことに気づいた.はい、あまり言わないで、本題に入ります.
私のやり方ではURLをModelをrewrite/互換に変更するには、次の手順に従います.
約43行目は、以下のように自分のcodeに合わせて修正します.詳細な記号に注意してください.

 location / {
      root  C:/Zend/workspaces; #//           。
      index index.html index.htm index.php;
      
      if (!-e $request_filename) {
      rewrite ^/(.*)$ /index.php/$1 break;  
      break;
      }
      
    }

phpの構成ではlocation~.php$をlocation~.phpは、再び強調して、細部に注意して、ここで$記号を消して、私が最初からこの原因でずっと解決できませんでした.

 location ~ \.php {
      root      C:/Zend/workspaces;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME C:/wnmp/php$fastcgi_script_name;
      include    fastcgi_params;
      set $path_info "";
      set $real_script_name $fastcgi_script_name;
      if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
      set $real_script_name $1;
      set $path_info $2;
      }
      fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
      fastcgi_param SCRIPT_NAME $real_script_name;
      fastcgi_param PATH_INFO $path_info; 
    }


まだ解決していない場合はThinkPHPエントリファイルindex.phpにコンフィギュレーションdefine('_PHP_FILE_',$_SERVER['SCRIPT_NAME']);
その間、500404の問題に遭遇するかもしれませんが、覚えておいて、細心の注意を払えばいいです.私のこの変更に従えば、ほとんど問題ありません.また質問があれば、伝言相談を歓迎します.
以上が本文のすべてですが、お好きになってください.