0

i18n-codeigniter の統合について問題があります。今日、最後のプロジェクトで i18n を統合しました。i18n の前にいくつかのカスタム ルートがありました。ここで、i18n ルート スタイルに従ってそれらを変更しました。しかし、3番目のセグメントに問題があります。つまり、私はこのルートを持っています:

$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 を入力すると空白のページが表示されます。 ..

どうすればその問題を解決できますか? 皆さん、ありがとうございました

4

2 に答える 2

2

あなたの (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

于 2012-09-12T23:32:18.497 に答える
1

これらの2行を入れ替えれば問題ないはずです

$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';
于 2012-09-12T23:32:41.637 に答える