CodeIgniter显示404页面上访问的路由/已转换控制器

时间:2012-10-25 13:28:25

标签: php codeigniter codeigniter-2 codeigniter-url codeigniter-routing

现在,当CodeIgniter找不到路径的控制器或uri的路由时,它会显示一个通用的404页面。如何显示访问的路由或控制器或有用的东西,以便我可以调试它显示404的原因?

代码:

switch ($_SERVER['HTTP_HOST']) {
    case 'multiplelines.domain.ro': 
             $route['default_controller'] = "subdomain"; break;
    default: $route['default_controller'] = "welcome"; break;
}


$route['scaffolding_trigger'] = "";
$route['404_override'] = '';
if($_SERVER['HTTP_HOST'] == "www.domain.ro" 
   || $_SERVER['HTTP_HOST'] == "domain.ro")
{
  // URI like '/en/about' -> use controller 'about'
  $route['^(romana|english|magyar)/(.+)$'] = "$2";

  // '/en', '/de', '/fr' and '/nl' URIs -> use default controller
  $route['^(romana|english|magyar)$'] = $route['default_controller'];
}
else
{

}

期望效果: 当在www或空子域上时,路由将发生如下: / language / test将转到测试控制器

当在另一个子域(我刚刚列出一个案例)时,将路由到子域控制器,因为我只想使用一个控制器。

注意:现在当在www或空子域上时,有代码可以自动为测试控制器的/ test路由选择语言(在uri中没有语言目录)。

4 个答案:

答案 0 :(得分:1)

当CI没有为页面找到正确的路由时,它知道没有这样的页面,因此它给出了404 NOT NOTISTIST ..

如果用户尝试在您的网站上打开/ sgasgasggsasga页面,则会因为同样的原因而获得404 ..

你必须自己找到它显示404 ...

http://codeigniter.com/user_guide/general/routing.html寻求帮助:)

答案 1 :(得分:0)

在您的应用上启用error logging

然后,一旦查找错误,您将看到生成404错误的请求的URI。

答案 2 :(得分:0)

将在计算机上正确填写答案,但看看Debugging routes in codeigniter?它是否有路线记录

答案 3 :(得分:0)

如何显示访问的路径或控制器或有用的东西,以便我可以调试它显示为404的原因?

您可以在404视图中回显$ _SERVER ['REQUEST_URI']以确定用户尝试去的位置。