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

特例@形式
在'map'映射和'args'参数中,我们还可以设置映射名称“@”的映射,它的作用是:当无法找到映射和控制器的时候,会默认执行“@”映射对应的控制器/动作,这样就可以实现一些类似“泛域名”形式的URL了。

普通的映射:

speedphp.com/groups.html

speedphp.com/cms.html

除了这些系统控制器之外的名字,全部用于用户自己的域名:

speedphp.com/jake

speedphp.com/myblogger

'spUrlRewrite' => array(
        'suffix' => '.html',
        'sep' => '-', 
        'map' => array( 
                'groups' => 'group@index',
                'cms' => 'main@index',
                '@' => 'user@index',
        ),
        'args' => array( 
                'groups' => array('tid'),
                '@' => array('username'),
        ),
),

speedphp.com/标识.html,当“标识”的符合以下两个条件的时候,将执行 user/index 参数$this->spArgs('username') = 标识。

map中没有键是等于“标识”的。
没有一个控制器名称等于“标识”的,如果“标识”的名称是控制器,那么会优先执行控制器。
这种@映射实现的对应地址,其实和前面的普通映射+参数是几乎相同的作用,唯一的不同,是@映射不需要加入对应的控制器名称或映射名称,相当于映射值为空。如:

普通映射+参数:

speedphp.com/member-user1.html

speedphp.com/member-user2.html

。。。

@映射:

speedphp.com/user1.html

speedphp.com/user2.html

点赞