SpeedPHP/自定义伪静态URL
SpeedPHP | 快速入门 | 访问交互 | 数据操作 | 框架概述 | 模板引擎 | 优化加速 | 开发指南 | 数据模型 | API参考 |
SpeedPHP框架的spUrlRewrite伪静态功能可以做到非常多的URL地址的效果,而且很简单配置一下即可。下面我们来看看一些配置的例子:
以下假设域名为speedphp.com,bbs/index 的意思是控制器 bbs,动作index
简单设置[ ]
'spUrlRewrite' => array( 'suffix' => '.html', 'sep' => '-', 'map' => array(), 'args' => array(), ),
那么:
speedphp.com/index.php?c=bbs&a=index
speedphp.com/index.php?c=cms&a=article
变成:
speedphp.com/bbs-index.html
speedphp.com/cms-article.html
带参数:
speedphp.com/index.php?c=bbs&a=index&uid=100
speedphp.com/index.php?c=cms&a=article&by=time&tid=213
变成:
speedphp.com/bbs-index-uid-100.html
speedphp.com/cms-article-by-time-tid-213.html
这个URL太长了?没关系,下面我们还会缩短它,很快。
分隔符'sep'和后缀'suffix'的设置[ ]
通过配置'suffix' 和 'sep' 能够构造出更多有趣的URL地址。
- 'suffix' 可以是任意值,如 '.do' 、'.asp' 或者为空 等等
- 'sep' 可以是“-_/”任意一个,如
- speedphp.com/bbs/index.asp
- speedphp.com/bbs-index.do
- speedphp.com/bbs_index.asp
提示:在使用'sep'为‘/’的时候,请注意相对路径此时不能起作用,务必要使用绝对路径。所以,在一定程度来说,使用“-”和“_”作为'sep'是更好的选择——不会引起路径问题。
'map'映射和'args'参数的设置[ ]
'map'映射是将一个映射名称对应上某个控制器/动作,使得URL上直接访问该名称就可以执行这个控制器/动作,相等于缩短了URL中“控制器/动作名称”的部分。
'spUrlRewrite' => array( 'suffix' => '.html', 'sep' => '-', 'map' => array( 'bbs' => 'bbs@index',// 映射bbs对应bbs/index 'cms' => 'cms@article',// 映射cms对应cms/article ), ),
- speedphp.com/bbs.html // 执行 bbs/index
- speedphp.com/cms.html // 执行 cms/article
- speedphp.com/cms-guestbook.html // 这是未设置map的 cms/guestbook
- speedphp.com/news-text.html // 这是未设置map的 news/text
'args'参数指代一个映射中的各个参数名称,名称按顺序匹配。和'map'映射缩短“控制器/动作名称”的部分同理,'args'参数缩短了URL中“提交参数名称”的部分(是缩短参数名称,参数值可不能缩短)。
- speedphp.com/index.php?c=bbs&a=index&uid=100
- speedphp.com/index.php?c=cms&a=article&by=time&tid=213
'spUrlRewrite' => array( 'suffix' => '.html', 'sep' => '-', 'map' => array( 'bbs' => 'bbs@index', 'cms' => 'cms@article', 'other' => 'other@index', ), 'args' => array( 'bbs' => array('uid'), 'cms' => array('by' , 'tid'), ), ),
最终效果:
speedphp.com/bbs-100.html // 执行 bbs/index,
参数:
- $this->spArgs('uid') = 100
speedphp.com/cms-time-213.html // 执行 cms/article,
参数:
- $this->spArgs('by') = time
- $this->spArgs('tid') = 213
如果在配置的args中没有对应的参数名称,将按照“名-值”的方式排列接收。
speedphp.com/other-mytype-img-time-today.html // 执行other/index
参数:
- $this->spArgs('mytype') = img
- $this->spArgs('time') = today
speedphp.com/bbs-100-by-group.html // 执行 bbs/index 参数
- $this->spArgs('tid') = 100
- $this->spArgs('by') = group
参考来源[ ]
http://speedphp.com/manual.html
SpeedPHP使用手册导航 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|