欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Nginx配置支持ThinkPHP的PATH_INFO

程序员文章站 2023-11-19 15:44:10
概述 今天遇到一个问题,ubuntu+nginx+mysql配置thinkphp的项目,做了一半发现,nginx不支持thinkphp的path_info模式,百度了好久...

概述

今天遇到一个问题,ubuntu+nginx+mysql配置thinkphp的项目,做了一半发现,nginx不支持thinkphp的path_info模式,百度了好久,在朋友的帮忙下才解决,记录下。

nginx支持thinkphp的path_info

环境

ubuntu 14.04+nginx+mysql。所有程序都是通过apt-get安装的,所以nginx的配置文件路径在/etc/nginx/sites-available/default。

解决方法

定位到nginx配置文件的如下部分:

复制代码 代码如下:
location / {
                # first attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
                # uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
       }

加入下面的代码:
复制代码 代码如下:

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

正则的写法

解决这个问题的时候,看到了好几种解决方案,光正则就看到了好几个,也不知道到底哪个是最标准的,本人正则也不是很熟,先记录下来,以后慢慢研究:
正则1:

复制代码 代码如下:

rewrite ^/myapp/(.*)$ /myapp/index.php/$1 last;

正则2:
复制代码 代码如下:

rewrite ^(.*)$ /index.php?s=$1 last;