1

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/ブログ/関数名

4

1 に答える 1