zoukankan      html  css  js  c++  java
  • 配置nginx支持THINKPHP的PATH_INFO

    ThinkPHP支持通过PATHINFO和URL rewrite的方式来提供友好的URL,但是Nginx中默认是不支持PATHINFO的,所以我们需要修改nginx.conf文件。


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

      这里先把project下的请求都转发到index.php来处理,亦即ThinkPHP的单一入口文件;然后把对php文件的请求交给fastcgi来处理,并且添加对PATH_INFO的支持。

      重启Nginx以后,http://localhost/project/Index/insert, http://localhost/project/index.php/Index/delete 这样的URL都可以正确访问了。

      还有一个地方需要注意的是,Nginx配置文件里 if 和后面的括号之间要有一个空格,不然会报unknown directive错误。

  • 相关阅读:
    Google Protocol Buffers学习
    C学习笔记-一些知识
    前端相关
    Spark笔记-gz压缩存储到HDFS【转】
    maven笔记-将本地jar包打包进可执行jar中
    Spark运行时错误与解决
    机器学习笔记
    Spark笔记-DataSet,DataFrame
    云平台各层解释
    linux笔记-多服务器同时执行相同命令
  • 原文地址:https://www.cnblogs.com/MonkeyF/p/3488488.html
Copyright © 2011-2022 走看看