yii路由设置示例

jerry Yii 2016年01月28日 收藏

yii的路由设置是通过修改config/main.php文件中的urlManager来实现的,方法也很简单:

'urlManager'=>array(			
	//'urlFormat'=>'path',
	'showScriptName'=>false,			
	//'urlSuffix'=>'.htm',			
	'rules'=>array(	
		'sitemap\.xml' => 'site/sitemap', //网站地图
		'sitemap\.xsl' => 'site/sitemapxsl', //网站索引
		'page/<id:\w+>'=>'page/index', //单页	
		'<controller:\w+>/<action:\w+>/cat_<catalog_id:\d+>/page_<page:\d+>'=>'<controller>/<action>', //分页
		'<controller:\w+>/<action:\w+>/page_<page:\d+>'=>'<controller>/<action>', //分页
		'<controller:\w+>/<action:\w+>/cat_<catalog_id:\d+>' => '<controller>/<action>',  //内容列表				
		'tag/index/<tag:\w+>' => 'tag/index',            //标签搜索页		
		'<controller:\w+>/<id:\d+>'=>'<controller>/view',
		'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',				
		'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',				
		),
),

其中urlformat参数可以为default或者path, 

showScriptName为true表示url中会带index.php 比如:http://www.shouce.ren/index.php/post/index , 如果为false,形如:http://www.shouce.ren/post/index, 

urlSuffix表示url后缀,可以是任意的比如 '.htm', '.phtm'等等 一旦设置了,同样apache或者nginx都要对相应的扩展予以支持。这样才会解析非.php的路径。

rules数组表示针对控制器和动作的访问规则。