nginx下解决thinkphp url重写的问题

nginx下解决thinkphp url重写的问题

  • 发表作者:
  • 帖子类别:技术教程
  • 阅读时间:1 mins read

众所周知thinkphp是国内非常流行的php开源框架,它对apache的支持很好,但它对nginx的支持不是很友好。需要进行的相应的配置来支持url重写来接解决PATHINFO以及伪静的问题。

官网给出的解决方案是

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

如果你的thinkphp安装在二级目录下上面的配置就行不通了,但可以对上面的配置进行小浮动修改以达到支持二级目录的效果


location /domain/ {
//domain是你所在目录的名称
    if (!-e $request_filename){
        rewrite  ^/omain/(.*)$  /youdomain/index.php?s=$1  last;
    }
}

下面我给出我本地nginx完整配置

server {
        listen        80;
        server_name  localhost;
        root   "D:/phpstudy_pro/WWW/";
        location / {
            index index.php index.html error/index.html;
            include D:/phpstudy_pro/WWW//nginx.htaccess;
            autoindex  off;
        }
location /web3/public/ {
      index index.php index.html error/index.html;
    if (!-e $request_filename){
        rewrite  ^/web3/public/(.*)$  /web3/public/index.php?s=$1  last;
    }
}
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9003;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}
分享

EvenYan

一90后在读计算专业大学生,擅长各种语言的hello world以及安装各种软件。
guest
0 评论
内联反馈
查看所有评论