mingyunyuziyou

nginx服务器设置url的优雅链接

作者: 秒速五厘米     
 


nginx服务器设置url的优雅链接

  对于LNMP这样架构的网站来说,一般都是基于php框架开发,php框架一般都会讲究优雅链接,比如Laravel,CodeIgniter,ThinkPHP等都是支持这种链接模式的,在服务器配置上也叫作url重写,目前框架大都采用单一入口的index.php然后基于MVC模式的话一般是/index.php/Model/function这种请求方式,所以如果能去掉index.php入口文件整个url就显得简洁美观,和Python、Java等开发的网站url模式统一,Apache和nginx都支持这种url的模式,下面说一下nginx配置的方式


  首先进入nginx的安装目录,上篇文章中说了在配置文件nginx.conf中,有server {}这样的代码段用来指定一个站点的配置,这下面有很多其他的配置,我们在配置文件或者include的配置文件中对应的server {}代码段中添加如下代码来实现url重写:

  location / {
       try_files uri/ /index.php?$query_string;
  }

              

  如果原来location / {}这段代码已经存在的话,那么就直接在里面追加图中那一行代码即可,因为同一个路由的配置一般放到一块;保存之后,重启nginx服务器即可生效,如果nginx被添加到服务的话,可以使用 /etc/init.d/nginx restart 进行重启,重启之后url就可以得到美化了


  网上还有另外一种url重写的方式,还是在同样位置添加如下代码来解决:

 location / {    if (!-e $request_filename) {
       rewrite ^(.*)1 last;
       break;
    }
}

   

 保存之后同样重启nginx生效,也可以实现url美化的效果,不过根据网上有些文章的说法,推荐第一种方式进行url的美化