3.1版SP框架自定义伪静态URL设置

这个URL太长了?没关系,下面我们还会缩短它,很快。

分隔符'sep'和后缀'suffix'的设置
通过配置'suffix' 和 'sep' 能够构造出更多有趣的URL地址。

'suffix' 可以是任意值,如 '.do' 、'.asp' 或者为空 等等
'sep' 可以是“-_/”任意一个,如

speedphp.com/group/index.asp

speedphp.com/group-index.do

speedphp.com/group_index.asp

提示:在使用'sep'为‘/’的时候,请注意相对路径此时不能起作用,务必要使用绝对路径。所以,在一定程度来说,使用“-”和“_”作为'sep'是更好的选择——不会引起路径问题。

'map'映射和'args'参数的设置
'map'映射是将一个映射名称对应上某个控制器/动作,使得URL上直接访问该名称就可以执行这个控制器/动作,相等于缩短了URL中“控制器/动作名称”的部分。

'spUrlRewrite' => array(
        'suffix' => '.html',
        'sep' => '-', 
        'map' => array( 
                'groups' => 'group@index', // 映射groups对应group/index
                'cms' => 'main@article', // 映射cms对应main/article
        ),
),

speedphp.com/groups.html // 执行 group/index

speedphp.com/cms.html // 执行 main/article

speedphp.com/group-guestbook.html // 这是未设置map的 group/guestbook

speedphp.com/news-text.html // 这是未设置map的 news/text

请注意:映射名不能是控制器名称。否则整个控制器的访问都会被映射接管。如group/index的映射名可以设置成groups,但不能是group,否则整个group控制器的执行都会转向到group/index。

'args'参数指代一个映射中的各个参数名称,名称按顺序匹配。和'map'映射缩短“控制器/动作名称”的部分同理,'args'参数缩短了URL中“提交参数名称”的部分(是缩短参数名称,参数值可不能缩短)。

speedphp.com/index.php?c=group&a=index&uid=100

speedphp.com/index.php?c=main&a=article&by=time&tid=213

'spUrlRewrite' => array(
        'suffix' => '.html',
        'sep' => '-', 
        'map' => array( 
                'groups' => 'group@index',
                'cms' => 'main@article',
                'other' => 'other@index',
        ),
        'args' => array( 
                'groups' => array('uid'),
                'cms' => array('by' , 'tid'),
        ),
),
点赞