Я настроил Codeigniter 2.1 с помощью i18n и расширенного контроллера.Codeigniter минимизирует URL-адреса с расширенным контроллером и многоязычным языком
Я спрячу главный контроллер «main», и я сохранил видимый контроллер «admin» и «blog».
Этот URLS работает отлично:
www.mysite.com/ ан/FunctionName
www.mysite.com/ ан/блог/
Это моя проблема: www.mysite.com/ it/блог/имя_функции
С основным контроллером "блога" все после того, как "/" игнорируется.
Возможно ли это?
Мой routes.php файл:
$default_controller = "main";
$language_alias = array('it','en');
// exceptions
$controller_exceptions = array('admin','blog');
// route
$route['default_controller'] = $default_controller;
$route["^(".implode('|', $language_alias).")/(".implode('|', $controller_exceptions).")(.*)"] = '$2';
$route["^(".implode('|', $language_alias).")?/(.*)"] = $default_controller.'/$2';
$route["^((?!\b".implode('\b|\b', $controller_exceptions)."\b).*)$"] = $default_controller.'/$1';
foreach($language_alias as $language) {
$route[$language] = $default_controller.'/index';
}
$route['404_override'] = '';
// URI like '/en/about' -> use controller 'about'
$route['^(it|en)/(.+)$'] = "$2";
// '/it', '/en' URIs -> use default controller
$route['^(it|en)$'] = $route['default_controller'];
Если удалить Ланг в моем URL все работает отлично:
www.mysite.com/ блог/имя_функции
Благодарим вас за ответ, но похоже, что он не работает. Я думаю, что проблема здесь: '$ route ['default_controller'] = $ default_controller;' '$ route ["^(". Implode ('|', $ language_alias).")/(". Implode ('|', $ controller_exceptions). ") (. *)"] = '$ 2'; ' ' $ route ["^ (". implode ('|', $ language_alias). ")?/(. *) "] = $ default_controller. '/ $ 2';' '$ route ["^((?! \ b ".implode ('\ b | \ b', $ controller_exceptions)." \ b). *) $ "] = $ default_controller. '/ $ 1';' – simo
Я изменил свой ответ, я переместил значение по умолчанию вверх. Он никогда не будет работать со значением по умолчанию внизу. – bottleboot
Спасибо, что это работает! Я должен тебе пиво! – simo