'URL_ROUTER_ON' => TRUE,
'URL_ROUTE_RULES' => array(
'/^c-(\d+)$/' => 'Index/content?id=:1'
)能实现路由效果。但是换了在 3.2中,同样的机器,同样的其它部署情况,同样的配置代码就不行了,如果我访问http://www.xxxx.com/c-2.html, 提示我“找不到c-2模块”
,然后就在论坛里找啊找啊找。
于是把配置信息 加上了如下代码:
'MODULE_ALLOW_LIST' => array('Home','Admin','Common'),
'DEFAULT_MODULE' => 'Home', // 默认模块
'DEFAULT_CONTROLLER' => 'Index', // 默认控制器名称
'DEFAULT_ACTION' => 'index', // 默认操作名称,现在目前的配置路由的代码是: 'MODULE_ALLOW_LIST' => array('Home','Admin','Common'),
'DEFAULT_MODULE' => 'Home', // 默认模块
'DEFAULT_CONTROLLER' => 'Index', // 默认控制器名称
'DEFAULT_ACTION' => 'index', // 默认操作名称
// 路由规则
'URL_ROUTER_ON' => TRUE,
'URL_ROUTE_RULES' => array(
'/^c-(\d+)$/' => 'Index/content?id=:1'
),这回路由起作用了。没有提示找不到模块,也能执行相应的逻辑了。但是,当我访问"http://www.xxxx.com/c-2.html"时候,url变成了"
http://www.xxxx.com/Index/content?id=2
",
逻辑虽然执行了,但是url变化了。为什么url直接就变化了呢?
正常的效果应该是如下的呀
url显示的是http://www.xxxx.com/c-2.html,
实际执行的逻辑是http://www.xxxx.com/Index/content?id=2。这样才对的呀。现在这个情况是哪里缺少了配置?配置错误?
最佳答案