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