前言
这次的起因还是那个创新项目,说到底整个项目还是以我的代码为主(99.99%),所以实际上我想怎么写就怎么写呗,这次考虑彻底的分离动态和静态页面,采用api的方式查询数据,所以显而易见的需要处理一个nginx的动静结合问题,此外还有nginx对于tp的特殊一点,nginx是不原生支持pathinfo。
所以简单的讲也就是url重写功能是 不会开启 的,这样相对于原来的lmap架构简单的部署而言要麻烦不少,当然了我们还可以使用更加复杂的架构比如lnmap这样的结构,不过目前来看apache还是不完全必要的因为后面只有一个php服务器,简单的lnap就好了。
tp的url知识
首先要设置url的读取规则,tp的url读取规则有三种,不过我只是记得两种, 第一种是这样的
/index.php/model/controller/action?var=value
当然咯这个还有一种变种写法比如这样的
/index.php?s=/model/controller/action?var=value
还有一个更加分离的写法,比如这样的
/index.php?$m=model&$c=controller&$a=action&var=value
/index.php?model=model&controller=controller&action=action&var=value
所以在了解thinkurl规则的情况下不需要进行pathinfo通过url重写同样可以完成操作
而事实上thinkphp中也通常使用了相同的方法,比如重写模式
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
所以为了方便正则匹配,我简单的选择$s的方法来匹配,先设置一下url规则
<?php
return array(
'URL_MODEL'=>2,
);
?>
nginx的配置
nignx的配置就简单多了简单的使用rewrite就好了
本文标题:实现tinkphp和nginx的动静分离(不使用pathinfo)
永久链接:https://iceprosurface.com/2016/06/13/2016/2016-06-13-use-tp-on-niginx/
作者授权:本文由 icepro 原创编译并授权刊载发布。
版权声明:本文使用「署名-非商业性使用-相同方式共享 4.0 国际」创作共享协议,转载或使用请遵守署名协议。