当前位置: 首页 > Notes > PHP > thinkphp在nginx服务器使用伪静态规则

thinkphp在nginx服务器使用伪静态规则

PHP 4条评论 2015-4-8 5,320 views

最近公司一个项目使用了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规则和新增其它规则,我们需要新增一个,将上面的规则复制并保存,如下截图。

edit_rewrite

二、然后在虚拟主机中,选择刚才添加好的rewrite规则即可,这个时候你就会发现thinkphp在nginx服务器已经支持伪静态了,LNMP一键安装包的童鞋可能需要手动找到这些配置文件并修改。

select_rewrite

4 条评论 “thinkphp在nginx服务器使用伪静态规则”

  1. 小康博客说道:

    刚好有用,收了,谢谢!

  2. hanbing17说道:

    谢谢分享,收着

  3. 谢谢分享,收着慢慢学校

发表评论

电子邮件地址不会被公开。 必填项已用*标注