每一个创新背后都有一个蛋疼的需求。
好吧,先说说我们的需求,再详细解说实现方法。假设你用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开头的访问全部重定向了空模块和空操作。
下课了,同学们再见!