ThinkPHP的路由是针对模块的。
使用路由的配置,可以在Common/Conf/config.php
中配置,也可以在模块中配置,例如:Home/Conf/config.php
'URL_MODEL' => 2, //URL模式
'URL_ROUTER_ON' => true, //必须设置为true
'URL_ROUTE_RULES'=>array(
'sitemap'=>array('Home/SiteMap/index','',array('ext'=>'xml')),
)
Home/SiteMap/index
可以通过url http://www.text.com/Home/sitemap.xml
访问
但是如果跳过模块即 http://www.text.com/sitemap.xml
则会报错无法加载模块SiteMap
tp手册中有这么一句话:
3.2的路由功能是针对模块设置的,所以URL中的模块名不能被路由,路由定义也通常是放在模块配置文件中。
也就是说模块是一定要在url中存在的。
通过网上查找资料最后发现原来tp中略有改动,把可以省略模块的路由的配置省略了。
查看Common/Conf/config.php
配置
'MODULE_DENY_LIST' => array('Common', 'User'),
//'MODULE_ALLOW_LIST' => array('Home'),
默认允许访问的模块是被注释了,我们去掉这个注释
我再访问 http://www.text.com/sitemap.xml
.
妥了。