i18nと拡張コントローラーを使用して Codeigniter 2.1 を構成しました。
メインコントローラー「メイン」を非表示にし、「管理者」と「ブログ」コントローラーを表示したままにしました。
この URL は正常に動作します。
www.mysite.com/ en /関数名
www.mysite.com/ ja /ブログ/
これは私の問題です: www.mysite.com/ it / blog / functionname
メインコントローラー「blog」では、「/」以降はすべて無視されます。
これを行うことは可能ですか?
私の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 で lang を削除すると、すべて正常に動作します。
www.mysite.com/ブログ/関数名