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

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

发布于:2015-4-8 PHP 4条评论 15,142 views
本站提供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规则和新增其它规则,我们需要新增一个,将上面的规则复制并保存,如下截图。

edit_rewrite

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

select_rewrite

发表回复

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


已有4条评论