URIルーティング
一般的に、URI 文字列には、それに対応する固有のコントローラー クラス/メソッドがあります。 URI のさまざまな部分は次のパターンです:
たとえば、URL に次のプロトタイプを使用するとよいでしょう:
通常、URL の 2 番目の部分はメソッド名を表しますが、上記の例ではプロダクト ID を表します。 CodeIgniter はこの関数を実装して、ユーザーが URI ハンドラーをリダイレクト (再マップ) できるようにします。
独自のルーティングルールを設定します
ルーティング ルールは application/config/routes.php ファイルで定義されます。このファイルには、独自のルーティング ルールを定義できる $route という名前の配列が表示されます。 定義は 2 つの方法で使用できます: ワイルドカードまたは正規表現
ワイルドカード
一般的なワイルドカード ルートは次のようになります:
ルートでは、配列のキーには照合する URI が含まれ、配列の値にはルートのリダイレクト先が含まれます。上記の例では、最初の部分に「product」という単語が表示されます。 URL の 2 番目の部分に数字 (:num) が含まれている場合、「catalog」クラスと「product_lookup」メソッドが代わりに使用されます (リダイレクトされます)。
リテラル値を照合することも、次の 2 つのワイルドカード タイプを使用することもできます:
:num は数字のみを含むセグメントに一致します。
:any は任意の文字に一致します (複数のセグメントも可能)。次のような複数の値に一致します。
$route['product/(:any)'] = "catalog/product_lookup/$1/$2/$3/$4/$5"; // URL 全体のすべてのパラメータをカタログ コントローラー メソッドで product_lookup に渡します。注: ルートは定義された順序で実行されます。
より高いレベルのルートが常に優先されます。
例
簡単な例をいくつか示します:
重要な注意事項: 前後に「/」を追加しないでください。 正規表現
必要に応じて、正規表現を使用してルーティング ルールをカスタマイズできます。逆参照も含めて、任意の正規表現を使用できます。
注: 後方参照を使用する場合は、二重バックスラッシュ構文をドル記号構文に置き換えてください (\1 は $1 に置き換えられます)。一般的な正規表現は次のようになります:
コードをコピーします
上記の例では、products/shirts/123 に似た URI は、shirts コントローラー クラスの id_123 メソッドを呼び出すことによって置き換えられます。
ワイルドカードと正規表現を混合することもできます。
システムによって予約されたルート
システムは 2 つのルートを保持します:
最初のルートはシステムのデフォルトルートです:
このルートは、URI にアクセスするクラスとコントローラーの情報が含まれていない場合 (つまり、http://localhost/ci などのルート ディレクトリのみにアクセスする場合) にどのコントローラーがロードされるかを示します。上記の例では、システムは「welcome」クラス (コントローラー) をロードします。必ずデフォルト ルートを設定する必要があります。そうしないと、ホームページに 404 エラーが表示されます。
2 番目のルートは 404 ページです:
このルートは、要求されたコントローラーにアクセスできない場合にどのコントローラーがロードされるかを識別します。これは、デフォルトの 404 エラー ページを上書きすることと同じです (つまり、独自の 404 ページを定義する機能を提供します)。ただし、show_404() メソッドには影響せず、application/errors/error_404.php にあるデフォルトの error_404.php ページがロードされます。
重要: 予約ルートは、ワイルドカード ルートまたは正規表現ルートの前に定義する必要があります。
//URL ヘルパーを使用します
$this->load->helper('url');
current_url = current_url();
これを実現するには、擬似静的のみを使用できます。 .htaccess 設定ルールの実装