java Android HTML5 Ubuntu apache google linux命令 mysql 微软 centos 程序员 Firefox linux shell Python 开源 php nginx Windows wordpress

让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错误。

延伸阅读

评论