ancf
(Acfpop)
1
第一个:
在使用urlManager的时候如果末尾加上*,那么GET参数会变成/key1/value1/key2/value2这种形式,但是如果value1是url的时候或者含有符号/的时候就会出错,无法正确识别参数。
第二个:
做网站SEO还是比较重要的,虽然百度一再重申不会歧视动态地址,但是事实我们都知道,而Yii只提供了一种方式将GET参数静态化,也就是使用/来分割。这对于搜索引擎来说并不理想,也许还不如动态参数。因为排序翻页等等一多就会导致目录无限加深,而且还容易是使蜘蛛掉进黑洞,造成蜘蛛对页面惩罚。
看过urlManager,分隔符是写死的,实在不想修改yii源码,所以就一直这么将就着,我觉得GET参数静态化的分隔符至少可以自定义,比如使用-之类的。
yiqing95
(Yiqing 95)
3
yii中的核心组件都是可以被复写的 你并不需要修改源码
扩展一个你自己的urlManager即可,根据你的需要修改某些实现 然后在main.php中修改配置:
array(
'urlManager' => array(
'class'=>'application.components.KUrlManager',
'urlFormat' => 'path',
//'caseSensitive'=>false,
'showScriptName' => false, //隐藏index.php 要配合 服务器重写 将所有请求导航到 index.php上
'rules' => array(
//'<controller:\w+>/<id:\d+>' => '<controller>/views',
//'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
//'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
//'<module:\w+>/<controller:\w+>/<action:\w+>'=>'<module>/<controller>/<action>',
'<module:sns>/<uid:\d+>'=>'<module>/default/index',
),
),
覆盖完后 配置 components => array(…