nginx下ThinkPHP的url重写实现伪静态url

近日,将前同事使用ThinkPHP开发的一个系统搬到nginx下,但发现竟然无法进行url重写,原来是因为ThinkPHP使用pathinfo模式实现重写,而nginx默认是不带pathinfo。
ThinkPHP在app/Conf/config.php可以配置URL_MODEL选项,有三种类型:
1. URL_MODEL => 1,默认支持pathinfo
2. URL_MODEL => 2,url重写模式,通过配置url重写来实现
3. URL_MODEL => 3,URL兼容模式,需要生成URL的地方采用U方法动态生成

这里,我们选择2,配置url重写模式,然后配置nginx:
# 在server段location /加载此内容
location / {
    if (!-e $request_filename){
         rewrite ^/(.*)$ /index.php?s=/$1 last;
    }
}

reload nginx,就可以访问了。


你可能感兴趣的:(nginx,thinkphp)