ユーザー ガイドのURI ルーティングの部分を参照してください。
ルーティングしたい URL の具体的なセットがある場合は、にルールを追加するapplication/config/routes.php
ことで、目的を達成できるはずです。
一般的な解決策が必要な場合 (任意の uri セグメントをproduct/details
ページにすることができます)、他のすべての URL をroutes.php
構成ファイルに明示的に追加し、キャッチオール ルールを設定して、他のすべてを適切なコントローラー/メソッドにルーティングする必要があります。404 URL も忘れずに処理してください。
例:が何か特別なもので、この 1 つだけを内部的にリダイレクトしたい場合は、次のように記述します
。/honda-red-car
$routes['honda-red-car'] = 'product/details/13/honda-accord-red-car';
文字列で始まるすべてを一般化する場合は、次のhonda-
ようにします。
$routes['(honda-.*)'] = 'product/details_by_slug/$1'; // imaginary endpoint
これらのルールはpreg_replace()
、キーをパターンとして渡し、値を置換文字列として渡す呼び出し内で使用されるため、()
キャプチャ グループ$1
用であり、キャプチャ パーツを配置します。
パターンが一般的すぎると、入ってくるすべてのリクエストをキャッチする可能性があるため、パターンには注意してください。
$routes['(.*)'] = 'product/details_by_slug/$1';
それは確かにどのような車の名前でsuzuki-swift-car
も機能しますが、通常のルート URL またはproduct/details/42
リクエストもキャッチします。
これらのルールは上から下に評価されるため、最初に特定のルールから始めて、ファイルの最後に一般的なルールを残します。