1. 程式人生 > >讓Nginx/tengine支援ThinkPHP/phpmvc框架/iwebshop的URL重寫和PATHINFO

讓Nginx/tengine支援ThinkPHP/phpmvc框架/iwebshop的URL重寫和PATHINFO

最近幫一個客戶遷移網站

  • 原始環境:windows 2003  + apache
  • 遷移至:centos5.8+tengine

發現iwebshop的偽靜態真心的難對付,研究了好久 直接貼出程式碼

location / {
     index  index.PHP;
     if (!-e $request_filename) { 
         rewrite  ^/(.*)$  /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 fastcgi_params.conf;
     fastcgi_param PATH_INFO $path_info;
     fastcgi_param SCRIPT_FILENAME  $document_root/$script;
     fastcgi_param SCRIPT_NAME $script;
 }

還有一個地方需要注意的是,Nginx配置檔案裡 if 和後面的括號之間要有一個空格,不然會報unknown directive錯誤。