Nginx配置支持TP PATHINFO URL_MODEL=1模式

配置Nginx支持ThinkPHP PATHINFO URL_MODEL=1模式

Nginx默认是不支持PATHINFO的,也就是说不支持ThinkPHP设置URL_MODEL=1的情况,这时候简单的方法,让Nginx迅速搭建TP的方法是,设置URL_MODEL=3,即兼容模式。但是要让Nginx支持ThinkPHP PATHINFO需要做如下配置:

1、设置ThinkPHP URL模式 URL_MODEL=1;
2、修改Nginx配置文件

location / {
   if (!-e $request_filename) {
   rewrite  ^(.*)$  /index.php?s=$1  last;
   break;
  }
}

上面的设置Nginx的伪静态方法, 其实内部是转发到了ThinkPHP提供的兼容模式的URL,利用这种方式,可以解决不支持PATHINFO的WEB服务器环境。
此处需要注意的是,如果你的ThinkPHP是安装在二级目录,Nginx的伪静态方法设置如下,其中youdomain是所在的目录名称

location /youdomain/ {
    if (!-e $request_filename){
      rewrite  ^/youdomain/(.*)$  /youdomain/index.php?s=$1  last;
    }
  }

再添加如下配置
location ~ .+.php($|/) {
      set $script $uri;
      set $path_info "/";
      if ($uri ~ "^(.+.php)(/.+)") {
          set $script $1;
          set $path_info $2;
      }
      include fastcgi_params;
      fastcgi_param PATH_INFO $path_info;
      fastcgi_index index.php?IF_REWRITE=1;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_param SCRIPT_FILENAME $document_root/$script;
      fastcgi_param SCRIPT_NAME $script;
  }

3、重新加载Nginx配置文件或重启Nginx服务让配置生效。

本文最后更新于 2013-10-30 16:48:57 并被添加「nginx tp thinkphp pathinfo php框架」标签,已有 34622 位童鞋阅读过。
本文作者:未来往事
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处

相关文章

此处评论已关闭