YII中利用urlManager将URL改写成restful风格
发布时间:2015-08-24 16:00:25 来源:51推一把
【摘要】YII中利用urlManager将URL改写成restful风格,以及一些项目中url rules实例
1.打开config文件夹下面的mian.php
2.修改内容
如把地址http://www.test.com/index.php?r=site/page/sid/1修改为http://www.test.com/site/page/sid/1
urlManager=>array(
showScriptName=>false, // 这一步是将代码里链接的index.php隐藏掉。
urlFormat=>path,
rules=>array(
<controller:w+>/<id:d+>=><controller>/view,
<controller:w+>/<action:w+>/<id:d+>=><controller>/<action>,
<controller:w+>/<action:w+>=><controller>/<action>,
),
),
修改为如果想不显示参数名可直接添加规则 添加规则后地址为http://www.test.com/site/page/1
rules=>array(
<controller:w+>/<action:w+>/<sId:d+>=><controller>/<action>,
),
还可以修改成http://www.test.com/site/page/Sid1
rules=>array(
<controller:w+>/<action:w+>/Sid<sId:d+>=><controller>/<action>,
),
不显示controller和action http://www.test.com/Sid1
rules=>array(
Sid<sId:d+>=>site/page,
),
注意定义规则的顺序
3.其它样例
3.1 带分站
rules => array(
<site:bj>/<action:test1|test2|test3|...|testn> => site/<action>, //site-controller,action传值 eg:/bj/test1
<site:bj>/<controller:test1> => <controller>/list, //已固定的参数,在url里可以忽略掉不传
<site:bj>/<controller:test1>/<id:d+>.html => <controller>/index,
<controller:404> => site/error,
<site:bj> => site/index,
<site:bj>/<controller:hd>/<action:tt>/<code:d+> => <controller>/<action>,
<site:bj>/<controller:hd>/<action:tt>/user/<code:d+>/ => <controller>/<action>,
<site:bj>/<controller> => <controller>/index,
<site:bj>/<controller>/<action> => <controller>/<action>,
),
3.2 modules
rules => array(
//d
<d>/<controller:user> => /d/user/index,
<d>/<controller:user>/<uid:d+> => /d/user,
//wap
<module:w>/<controller:index>/<action:list>/<cate:w+> => w/index/list,
<module:w>/<controller:index>/<action:test>/<cate:w+> => w/index/test,
<module:w>/<controller:index>/<action:test>/<cate:w+>/p<page:d+> => w/index/test,
<module:w>/<controller:index>/<action:test2>/<case:d+>/<param:w+> => w/index/test2,
//controller
<controller:sjs>/<city:d+> => sjs/index,
<controller:sjs>/<city:d+>p<page:d+> => sjs/index,
//sitemap
case_<o:[d]+>_<l:[d]+>.html => sitemap/case,
test.html => sitemap/test,
sitemap_img_360_<date:[dw]+>_<page:[d]+>.xml => sitemap/img360,
sitemap_img_360_<date:[dw]+>.xml => sitemap/img360,
//项目
<controller:w+>/<action:w+>/<id:d+> => <controller>/<action>,
<controller:w+>/p<page:d+> => <controller>,
<controller:w+>/<action:w+>/p<page:d+> => <controller>/<action>,
<module:w+>/<controller:w+>/<action:w+>/p<page:d+> => <module>/<controller>/<action>,
<module:w+>/<controller:w+>/<action:w+>/<test:d+> => <module>/<controller>/<action>,
<module:w+>/<controller:w+>/<action:w+>/<test:d+>/<param:w+> => <module>/<controller>/<action>,
<module:w+>/<controller:w+>/<action:w+>/<test:d+>/<param:w+>/<index:d+> => <module>/<controller>/<action>,
//其他
<controller:home> => site/index,
<controller:index> => site/index,
<controller:reg> => login/register,
),