本站提供Linux服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme
最近公司一个项目使用了thinkphp框架进行开发,在Apache服务器上开启pathinfo是没有任何问题的,然后部署到nginx的服务器上,那么问题就来了,nginx服务器上才发觉nginx是不支持pathinfo的,网上搜索了别人的解决方法,有两种思路:
1、修改thinkphp让他可以在nginx上运行 2、修改nginx让它支持pathinfo
不过个人感觉使用这两种方法有点麻烦,而且还不一定能成功,后来又发现一种新的方法,简便快捷。首先新增一个rewrite规则
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
然后将thinkphp配置文件下url模式改为2
'URL_MODEL'=>2,
如果是多个项目,布署项目时要把项目布署到目录里,如后台的项目放到Admin目录里,那么在nginx的rewrite里再写一条。
location /Admin/ {
if (!-e $request_filename) {
rewrite ^/Admin/(.*)$ /Admin/index.php?s=$1 last;
break;
}
}
最后也不要忘记把这个项目的url模式改为2
因为服务器安装了AMH面板,顺便分享在AMH面板下如何使用,当然LNMP一键安装包同理。
一、首先在AMRewrite这个模块中可以管理所有rewrite规则和新增其它规则,我们需要新增一个,将上面的规则复制并保存,如下截图。
二、然后在虚拟主机中,选择刚才添加好的rewrite规则即可,这个时候你就会发现thinkphp在nginx服务器已经支持伪静态了,LNMP一键安装包的童鞋可能需要手动找到这些配置文件并修改。
刚好有用,收了,谢谢!
谢谢分享,收着
谢谢分享,收着慢慢学校
呵呵~