3

我的工作涉及2种网址,一个标准的CI模式笨:发送不控制器的名称相匹配的默认控制器

http://fancysite.com/controller/ 

下一个项目的所有请求,另一个呈现以下方案:

http://fancysite.com/category 

我想第二个与category调用默认的控制器的handlecategory(或类似的东西)函数作为参数。

奖金的爱,如果你也能告诉我怎么才能让像http://place.fancysite.com/调用同一个函数传递只是place作为参数的URL,如果没有类别遵循URL,或两者placecategory如果这样做。

附加数据:我已经知道所有控制器,地点,类别的名称。

+1

http://codeigniter.com/forums/ viewthread/102025 /#514638可能回答你的子域查询〜 – Ross 2010-12-22 16:41:55

+0

@Ross谢谢!实际上,我想我可以从这个例子中得到我需要的剩余部分。测试完成后,我会明天发布完整的解决方案。 – cbrandolino 2010-12-22 17:49:34

回答

6

可以使用CodeIgniter的URI routing实现这一目标 -

插入这在你的路线文件的末尾 -

$route[':any'] = 'path of the default controller'; 

其它所有路由应放在上层码以上。

比方说遇到的URL笨是 - 如果有一个名为类别控制器

http://fancysite.com/category

所以,首先笨将搜索。 如果没有拿到那么它会检查路由文件,以检查是否有 这样指定的任何路线 -

$route['category/:any'] = 'actual path'; 

如果在这种情况下笨指定这样的路线将通过这个 请求您在最后一行 中提到的默认控制器的路径。

即使链接包含子域也没关系,请求会去 相同的默认控制器。

现在您可以在默认控制器中插入子域处理或其他任何 的逻辑。

你甚至可以获取参数“类别”在我们采取 URL例子是使用codeigniters如下URI辅助类的URL -

$this->uri->segment(1);