码点火器和i18n';s第三段


Codeigniter and i18n's 3rd segment

我有一个关于i18n代码点火器集成的问题。我今天集成了我的上一个项目i18n。在i18n之前,我有一些自定义路线。现在我根据i18n路由样式对它们进行了更改。但我对第三部分有一些问题。我的意思是,我有这样的路线:

$route['default_controller'] = "welcome";
$route['404_override'] = '';
$route['^(tr|en)/hakkimizda'] = 'Bilgi/Hakkimizda';
$route['^(tr|en)/kampanyalar'] = 'Bilgi/Kampanyalar';
$route['^(tr|en)/haberler'] = 'Haberler';
$route['^(tr|en)/kampanyalar/(.+)$'] = 'Bilgi/Kampanyalar/$1';
$route['^(tr|en)/haberler/(:any)'] = 'Haberler/HaberDetay/$1';
$route['^(tr|en)/urunler'] = 'Urunler';
$route['^(tr|en)/urunler/(:any)'] = 'Urunler/Detay/$1';
$route['^(tr|en)/urunler/kategori/(:any)'] = 'Urunler/Kategori/$2';
$route['^(tr|en)/kesif-talebi'] = "Iletisim/Kesif_Talebi";
$route['^(tr|en)/iletisim'] = "Iletisim";
$route['^tr$'] = $route['default_controller'];
$route['^en'] = $route['default_controller'];

有些链接运行良好。当我进入http://webadress.com/en/urunler这很完美,但当我进去的时候http://webadress.com/en/urunler/kategori/parameter这给了我空白的一页。。。

我该如何解决那个问题?感谢所有

您的(any:)路由优先。

尝试切换顺序:

$route['^(tr|en)/urunler/(:any)'] = 'Urunler/Detay/$1';
$route['^(tr|en)/urunler/kategori/(:any)'] = 'Urunler/Kategori/$2';

$route['^(tr|en)/urunler/kategori/(:any)'] = 'Urunler/Kategori/$2';
$route['^(tr|en)/urunler/(:any)'] = 'Urunler/Detay/$1';

来自CI文档:

路由将按定义的顺序运行。更高的路线总是优先于较低的。

http://codeigniter.com/user_guide/general/routing.html

交换这两行,应该很好

$route['^(tr|en)/urunler/(:any)'] = 'Urunler/Detay/$1';
$route['^(tr|en)/urunler/kategori/(:any)'] = 'Urunler/Kategori/$2';

$route['^(tr|en)/urunler/kategori/(:any)'] = 'Urunler/Kategori/$2';
$route['^(tr|en)/urunler/(:any)'] = 'Urunler/Detay/$1';