CodeIgniter показывает доступный маршрут/переведенный контроллер на странице 404

Теперь, когда 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).


person Octavian    schedule 25.10.2012    source источник
comment
Скопируйте и вставьте код маршрутизатора, который не работает.   -  person Svetoslav    schedule 25.10.2012
comment
Добавлен код по запросу. Спасибо   -  person Octavian    schedule 25.10.2012
comment
Итак, вы хотите, чтобы CI отображал для вас что-то, чего он не может найти изначально? :) (Как я могу показать доступный маршрут или контроллер)   -  person    schedule 25.10.2012
comment
Чтобы быть более конкретным, мне нужна отладочная информация, к какому маршруту он пытался получить доступ, к какому контроллеру пытался получить доступ и не нашел.   -  person Octavian    schedule 25.10.2012


Ответы (4)


Когда CI не находит правильный маршрут для страницы, он знает, что такой страницы нет, поэтому выдает 404 NOT EXISTING..

Если пользователь попытается открыть страницу /sgasgasggsasga на вашем сайте, он получит 404 по той же причине.

Вы должны сами найти, почему он показывает 404...

Обратитесь за помощью к http://codeigniter.com/user_guide/general/routing.html. :)

person Svetoslav    schedule 25.10.2012

Включите регистрацию ошибок в своем приложении.

Затем, после поиска ошибок, вы увидите запрошенный URI, вызвавший ошибку 404.

person dakdad    schedule 25.10.2012

Правильно заполнит ответ на компьютере, но посмотрите Отладка маршрутов в codeigniter? это имеет журнал маршрута

person Hailwood    schedule 26.10.2012

How can I show the accessed route or controller or something useful that would allow me to debug why it's showed a 404?

Вы можете повторить $_SERVER['REQUEST_URI'] в представлении 404, чтобы определить, куда пользователь пытался перейти.

person Max Power    schedule 06.03.2015