没有Htaccess的Codeigniter中的URI路由

时间:2012-01-10 10:50:48

标签: php uri redirect codeigniter-2

这是我的网站网址:

xxx.myserver.net

在这个网站中,我想路由控制器,这意味着当我链接这个类型url:

xxx.myserver.net/aaaaa

我想将它重定向到我想要的控制器,这意味着我想重定向到:

xxx.myserver.net/index.php/controller-name/funation-name/aaaaa

我想通过使用codeigniter uri路由方法而不使用htaccess方法来完成此操作。

当我尝试这样做时,我收到一条错误消息:

Not Found

The requested URL  not found on this server.

这是我在routes.php页面中提供的代码:

$route['/(:any)'] = "xxx.myserver.net/index.php/controller-name/funation-name/$1";

我的代码中有什么问题?

我该怎么做?

1 个答案:

答案 0 :(得分:1)

如果不使用.htaccess文件,则无法执行此操作。从较高层面来看,.htaccess文件的目的是通过CodeIgniter前端控制器(根目录中的index.php文件)将所有请求路由到您的域。以下documentation解释了如何创建.htaccess文件并从URL中删除index.php。换言之,它说明了如何将任意请求视为index.php文件的请求。

当您向xxx.myserver.net/aaaaa发出请求时,Web服务器正在您的根目录中搜索资源aaaaa。 CodeIgniter甚至没有处理该请求。由于您没有标题为aaaaa的资源,因此您收到错误。

要在没有.htaccess文件的情况下使用CodeIgniter,您需要通过index.php传递每个请求。例如:

xxx.myserver.net/index.php/aaaaa

然后你可以这样创建你的路线:

$route['(:any)'] = 'controller_name/function_name/$1';