Мультиязычность в CodeIgniter

sanu0074

Новичок
Делаю мультиязычный сайт на CI.
так вот выглядит routes.php (часть его):
PHP:
$route['([^ru]|[^en])/(:any)'] = "main/setLang";
$route['(ru|en)'] = $route['default_controller'];
$route['(ru|en)/(:any)'] = "$2";
т.е. всегда после домена, 1й сегмент урла это код языка - иначе быть не может. И строка "$route['([^ru]|[^en])/( :any)'] = "main/setLang";" говорит о том что если код языка не равен ru или en, то нужно тут же перенаправить юзера на страницу main/setLang где присвоится нужный сегмент. Например заходим на site.com/de/page-abc - нас перенаправляет на site.com/main/setLang, тут же определятся язык из юзер агента или присваивается язык по умолчанию, и перенаправляет уже на (к примеру): site.com/ru/page-abc
Проблема в том что этот код не пашет, в данном случае если первый сегмент ru или en - то все работает как надо, а вот если de - то получаем 404! И так же если просто зайти на site.com/ - должно было перенаправить на site.com/main/setLang - но этого не происходит, и даже не выдает ошибку, а просто грузится главный контроллер!
В чем здесь ошибка? Я так подозреваю здесь: $route['([^ru]|[^en])/:)any)'] = "main/setLang"
И вообще, как правильно организовать решение такой задачи на codeigniter?
 

AnrDaemon

Продвинутый новичок
Сделай через default route, твою схему читать больно.
 

sanu0074

Новичок
AnrDaemon, напрмер если сделать так, то это ничего не изменит:
PHP:
$route['default_controller'] = "ru/main/index";
 
Сверху