2012-09-12 66 views
0

我有一個關於i18n-codeigniter集成的問題。我今天整合了我最近的一個項目。在i18n之前我有一些自定義路線。現在我按照i18n的路線風格改變了它們。但是我有第三段的問題。 我的意思是,我有這樣的路線:Codeigniter和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']; 

一些鏈接正在perfectly.When我進入到http://webadress.com/en/urunler是工作完美,但是當我進入http://webadress.com/en/urunler/kategori/parameter,讓我空白頁...

哪有我解決了這個問題? 謝謝大家

回答

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'; 

從CI文檔:

路線將在它們被定義的順序運行。較高的路線將 總是優先於較低的路線。

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

1

交換這兩行,它應該是罰款

$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'; 
+0

,這不是爲我工作。同樣的錯誤再次。 –

+0

我的猜測是因爲'$ route ['^(tr | en)/ urunler'] ='Urunler';'這可能與下面的路線相沖突。試着把它放在這些路線後面 –

+0

我試過了也不行。最後,我試了這個。這使得urun detay page完美,但是kategori頁面錯誤。 '$ route ['^(tr | en)/ urunler /(:any)'] ='Urunler/Detay/$ 2'; $ route ['^(tr | en)/ urunler/kategori /(:any)'] ='Urunler/Kategori/$ 1'; $ route ['^(tr | en)/ urunler'] ='Urunler';' –