thinkPHP部署在Nginx站点二级目录时的伪静态规则

2017-09-15 13:14 栏目:技术开发 查看(21409)

thinkPHP是一款国产的敏捷web开发框架,特别是5.0版本就是为API开发而生的,不管是做纯粹的web端项目,还是作为app的服务端都是非常不错的选择。这款框架上手特别快,只要具备良好的开发基本功的同学,基本上几天内就可以上手做项目了。今天项目组的小伙伴跟我说项目在开发环境是正常的,而到了测试环境则只有首页能够打开其他页面全部404.

其实thinkPHP拥有非常完善的路由机制,所以对伪静态是能够很好支持的。而开发环境是Apache,测试环境是Nginx,在服务器上创建虚拟目录后,通过Apache的组件可以直接加载网站目录中的.htaccess文件进行重写URL;而Nginx默认是不支持.htaccess的。首先我们可以知道thinkPHP在Nginx下的基础伪静态规则如下:

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

然而如果直接这样配置在服务器上,那么显然也是不行的,因为我们的项目是放在二级目录下面,而不是站点根目录下面(因为测试的时候会调用公司网站的微信接口,保持测试项目跟实际已经运行的项目保持在同一个域名下)。其实也比较简单,其实跟我们写apache的规则差不多。只需要把以上规则修改成如下即可:

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

是不是和写apache规则特别类似呢?对了,其中的jiewang就是这个项目的目录名称,其实不仅仅是thinkPHP,这种思维和写法也是适用于其他的框架的。

与我们的项目经理联系
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流

转载请注明出处:thinkPHP部署在Nginx站点二级目录时的伪静态规则 - 微构网络
分享: