ThinkPHP开发技巧之利用路由实现分组别名

每一个创新背后都有一个蛋疼的需求。
好吧,先说说我们的需求,再详细解说实现方法。假设你用ThinkPHP开发的某站点后台地址为http://www.example.com/Admin,突然有一天你老大跟你说这个路径有被扫描的风险,要你把后台路径改为http://www.example.com/MyAdmin。
这个需求影响的地方包括:


Action文件名及类名
Tpl模板对应目录
其他

有没有更简单的方法?在不改Action和Tpl的情况下如何实现呢?这个时候应该有人马上想到了ThinkPHP的路由。

array('/^MyMdmin(?:\/?(\w+)?\/?(\w+)?)/i', 'Empty/_empty', 'm,a', 'g=Admin'),

这个时候访问:


http://www.example.com/MyAdmin/News/add


实际访问到的是:


http://www.example.com/Admin/News/add


这个时候有人会问,如果我想只让别名能访问,而原来的路径失效,可以吗?应该怎么办?
答案是可以,在路由配置里增加多一条:

 array('/^Admin/i', 'Empty/_empty'),

 

相当于把Admin开头的访问全部重定向了空模块和空操作。

下课了,同学们再见!

你可能感兴趣的:(PHP)