将控制器重定向到主索引

时间:2011-08-18 04:55:43

标签: .htaccess codeigniter indexing routes

我有一个控制器用于名为redirect.php的重定向。该控制器只有一个_remap($method)

_remap方法的工作原理是将重定向控制器之后的任何URI字符串归入控制器。例如,对http://mysite.com/redirect/sometext的请求会将请求发回http://mysite.com/redirect

这是我想要的行为,但我如何在index level发生这种情况,因此我不必键入http://mysite.com/redirect/sometext,我可以输入http://mysite.com/sometext并获得相同的行为。这很有挑战性,因为CodeIgniter使用了Index.php,所以我不能在这里放置_remap方法。至于,我对路线和.htaccess并不是非常熟悉,任何帮助都会受到赞赏,以使其发挥作用。

1 个答案:

答案 0 :(得分:1)

如果你想沿着路线前进,你会为你拥有的每个控制器建立一条路线,也就是控制器somepage将有一条路线$route["somepage"] = "somepage";,然后在所有这些路线之后(在最底层) (路线)。路由通过查找第一个匹配的正则表达式然后使用它来工作,因此为了确保所有控制器都能正常工作,并且只捕获常规文本,您需要遵守这些规则。
然后我们制定“默认”规则,这将运行在之前的路径检查中未捕获的所有内容。像$route["(.*)"] = 'redirect/index/$1';这样的东西。这会将您重定向到控制器redirect,第一个uri段(段3)在上面的示例中为sometext。请注意,这也适用于404页面,它适用于上述规则中未定义的所有内容

我没有看到这一点,如果我是你,我会把它发送到重定向控制器,它会使事情变得不那么混乱,但当然有一种方法如上所示。