3

私は2種類のURLを含むプロジェクトに取り組んでいます。1つは標準のCIパターンに従います。

http://fancysite.com/controller/

そして、次のスキームを提示する別のもの:

http://fancysite.com/category

2番目に、引数としてデフォルトのコントローラーhandlecategory(またはそのようなもの)の関数を呼び出したいと思いcategoryます。

http://place.fancysite.com/のようなURLで同じ関数を呼び出して、placeそのURLに続くカテゴリがない場合、またはその両方のplace場合に引数として渡す方法を教えていただければ、ボーナスが大好きですcategory

追加のデータ:私はすでにすべてのコントローラー、場所、カテゴリーの名前を知っています。

4

1 に答える 1

6

これを実現するために、codeigniterのURIルーティングを使用できます-

ルートファイルの最後にこれを挿入します-

$route[':any'] = 'path of the default controller';

他のすべてのルートは、上位コードの上に配置する必要があります。

遭遇したURLcodeigniterが-であるとしましょう

http://fancysite.com/category

したがって、最初にcodeigniterはcategoryという名前のコントローラーがあるかどうかを検索します。それが取得されない場合は、ルートファイルをチェックして、このように指定されたルートがあるかどうかを確認します-

$route['category/:any'] = 'actual path';

そのようなルートが指定されていない場合、codeigniterはこのリクエストをルートの最後の行で言及したデフォルトのコントローラーのパスに渡します。

リンクにサブドメインが含まれている場合でも、リクエストが同じデフォルトのコントローラーに送信されるかどうかは関係ありません。

これで、デフォルトのコントローラーにサブドメイン処理などのロジックを挿入できます。

以下のようにcodeignitersURIヘルパークラスを使用してURLにあるURLの例でパラメータ「category」を取得することもできます-

$this->uri->segment(1);
于 2010-12-22T18:04:56.383 に答える