新手在学习qeephp的时候,肯定会发现qeephp原来的路由又臭又长……还好,qeephp框架的有美化URL的功能。

首先介绍下qeephp的双向解析:

  正向解析:

  http://localhost/flyingdream/imgCode/check/1 ,像这样一个url很常见,在访问此链接的时候,他告诉服务器程序,我使用了imgCode这个控制器,并调用check方法。不仅如此,服务器还知道了type=1这个选项。

  这种功能几乎每个框架里面都有。python的django框架通过正则表达式来改变URL的接收方式,这种方式一定让许多程序员感到十分亲切。个人认为qeephp的路由配置更加方便,因为不用写很长很长很长的正则表达式。

  反向解析:

  正向解析扯多了,反向解析其实很简单,就是一个函数:url()。这个函数根据参数具有反解析路由的能力。

  下面引用下qeephp-quick-start上面的反解析介绍,因为上面讲的很清楚,不需要我多废话了:

    在应用程序的 URL 路由没有启动时,url() 的效果如下:

   url('tasks/create')// 结果为 index.php?controller=tasks&action=create
    url('tasks/edit', array('task_id' => 2))// 结果为 index.php?controller=tasks&action=edit&task_id=2
   
而启用 URL 路由后,url() 的效果如下:
    url('tasks/create')// 结果为 /tasks/create
    
url('tasks/edit', array('task_id' => 2))// 结果为 /tasks/edit/2
   
如果我们修改了路由规则,则效果可能是:
    url('tasks/create')// 结果为 /create-new-tasks
    
url('tasks/edit', array('task_id' => 2))// 结果为 /edit-my-task/2
   也就是说 url() 函数的结果取决于应用程序的配置和路由规则。
下面,上正餐:启用url路由:
    1、讲工程目录中的 _htaccess 改名或复制为 .htaccess
    2、修改 configs/environments.yaml 文件
      dispatcher_url_mode: standard  改为  dispatcher_url_mode: rewrite
    3、添加新的路由规则
      实际上这个路由就可以用了。但是想要添加更多的路由规则可以根据默认的路由规则进行设置。实际上就是变量的取得而已。
_default_:
pattern: /:controller/:action/*
defaults:
controller: default
action: index
    yaml的老规则,空两格缩进。
posted on 2011-02-18 16:03  Neoh  阅读(1256)  评论(0编辑  收藏  举报