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数组表示针对控制器和动作的访问规则。