使用する場合
$route['(:any)'] = 'pages/view/$1';
たとえば、ルーティングで他のコントローラーを使用したい場合。
$route['del/(:any)'] = 'crud/del';
それは動作しません。私はそれが使用すると思います
pages/view/del/$1
アイテムを削除するときの私のクラッドコントローラーではありません。どうすればこれを解決できますか?
使用する場合
$route['(:any)'] = 'pages/view/$1';
たとえば、ルーティングで他のコントローラーを使用したい場合。
$route['del/(:any)'] = 'crud/del';
それは動作しません。私はそれが使用すると思います
pages/view/del/$1
アイテムを削除するときの私のクラッドコントローラーではありません。どうすればこれを解決できますか?
示されているように、任意のURL$route['(:any)']
と一致するため、他のカスタムルートを「キャッチオール」ルートの前に配置します。
$route['del/(:any)'] = 'crud/del';
// Other routes as needed...
$route['(:any)'] = 'pages/view/$1';
その百パーセントは働いています
$route['(:any)'] url is placed last in your routes file
$route['(:any)/company_product_deal_detail'] = "mypage_product_picture/deal_detail/$1";
$route['(:any)/company_service_deals/(:any)'] = "mypage_service_deal_list/index/$1";
$route['(:any)/company_service_deals'] = "mypage_service_deal_list/index/$1";
$route['(:any)'] = "company/index/$1";
私はそれが古い質問であることを知っていますが、私は自分自身が素晴らしい解決策であることに気づきました。
デフォルトでは、CodeIgniterはルート構成からのURLを優先するため(ストレートコントローラー、メソッドなどが指定されている場合でも)、この優先順位を次のように逆にしました。
system/core/Router.php
検索_parse_routes
メソッドで。
リテラルルートマッチの下にこのコードを追加します。
$cont_segments = $this->_validate_request($this->uri->segments);
if ($cont_segments == $this->uri->segments) {
return $this->_set_request($cont_segments);
}
システム/コアからファイルを編集するため、このアプローチは少し間違っていることに同意しますが、多くのURLを処理するには高速な解決策が必要でした。