Codeigniter пользовательских маршрутов с i18n - PullRequest
2 голосов
/ 22 августа 2011

Я внедрил i18n в свое приложение ci в соответствии с http://codeigniter.com/forums/viewthread/179036/, но мои пользовательские маршруты больше не работают.

/* custom routes */
// URI like '/en/about' -> use controller 'about'
$route['^(en|de)/(.+)$'] = "$2";
// '/en' and '/de' URIs -> use default controller
$route['^(en|de)$'] = $route['default_controller'];

$route['register'] = 'auth/register';
$route['login'] = 'auth/login';
$route['logout'] = 'auth/logout';

'register', 'login' и 'logout' не направляются в auth / что-то. Есть идеи почему? Я получаю ошибку 404 (когда я открываю en / login, он хочет использовать контроллер входа вместо auth)

1 Ответ

3 голосов
/ 22 августа 2011

Маршруты выполняются в том порядке, в каком они указаны в вашем routes.php.Поэтому, когда вы попытаетесь en/login, он достигнет строки с надписью $route['^(en|de)/(.+)$'] = "$2";, а затем направит его к контроллеру login

Вы на самом деле хотите сделать 2 разных перенаправления .. (из en/login-> 'login' -> 'auth / login'), поэтому он не работает.

Возможно, вам просто нужно добавить специальные правила для аутентификации, например:

$route['^(en|de)/register'] = 'auth/register';
$route['^(en|de)/login'] = 'auth/login';
$route['^(en|de)/logout'] = 'auth/logout';

..и обязательно укажите до ваших общих маршрутов i18n.

прочитайте онлайн-документацию для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...