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
}
# 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;
推荐阅读
-
使用Nginx反向代理与proxy_cache缓存搭建CDN服务器的配置方法
-
实现Nginx中使用PHP-FPM时记录PHP错误日志的配置方法
-
一个等号引发的血案(谈Nginx正确的404配置)
-
nginx支持.htaccess文件实现伪静态的方法分享
-
Nginx下配置pathinfo及ThinkPHP的URL Rewrite模式支持
-
比较完整的Nginx配置文件nginx.conf常用参数中文详解
-
Nginx配置支持ThinkPHP的PATH_INFO
-
在Nginx服务器下配置StartSSL和SSL的教程
-
nginx中用JSON格式记录日志的配置示例
-
Nginx下支持Thinkphp URL Rewrite的配置示例