カテゴリ: CodeIgniter 更新日: 2026/01/10

CodeIgniterのルーティングとは?仕組みと役割を基礎から解説

CodeIgniterのルーティングとは?仕組みと役割を基礎から解説
CodeIgniterのルーティングとは?仕組みと役割を基礎から解説

先生と生徒の会話形式で理解しよう

生徒

「CodeIgniterでウェブサイトを作りたいんですが、URLと実際の処理をつなげる方法がわかりません。」

先生

「それはルーティングという仕組みで管理できます。CodeIgniterのルーティングを使えば、URLと処理を簡単に紐付けられますよ。」

生徒

「ルーティングって何ですか?どんな役割があるんでしょうか?」

先生

「それでは、CodeIgniterのルーティングについて、基礎から詳しく見ていきましょう!」

1. CodeIgniterのルーティングとは?

1. CodeIgniterのルーティングとは?
1. CodeIgniterのルーティングとは?

CodeIgniterのルーティングとは、ウェブサイトのURL(アドレス)と、実際に実行されるプログラムの処理を結びつける仕組みのことです。例えば、誰かがあなたのウェブサイトで「https://example.com/products/view」というURLにアクセスしたとき、どのプログラムを実行するかを決めるのがルーティングの役割です。

身近な例で説明すると、郵便配達のようなものです。郵便物には住所が書かれていて、郵便局員がその住所を見て正しい家に配達しますよね。ルーティングも同じで、URLという「住所」を見て、正しいプログラムという「家」に届けてくれるのです。

CodeIgniterでは、このルーティング機能が最初から用意されているため、プログラミング初心者でも比較的簡単にウェブアプリケーションを作ることができます。

2. ルーティングの基本的な仕組み

2. ルーティングの基本的な仕組み
2. ルーティングの基本的な仕組み

CodeIgniterのルーティングは、コントローラーメソッドという2つの要素を使って動作します。コントローラーとは、処理をまとめた大きな箱のようなもので、メソッドはその箱の中にある具体的な処理のことです。

例えば、「Products」というコントローラーがあり、その中に「view」というメソッドがあるとします。ユーザーが「https://example.com/products/view」にアクセスすると、CodeIgniterは自動的にProductsコントローラーのviewメソッドを実行します。

デフォルトでは、URLの構造は次のようになっています。


example.com/コントローラー名/メソッド名/パラメータ

このように、URLの各部分がコントローラーやメソッドに対応しているため、CodeIgniterは自動的にどの処理を実行すればよいかを判断できるのです。

3. ルーティング設定ファイルの場所と基本構造

3. ルーティング設定ファイルの場所と基本構造
3. ルーティング設定ファイルの場所と基本構造

CodeIgniterでルーティングの設定を行うには、専用の設定ファイルを編集します。このファイルはapplication/config/routes.phpという場所にあります。パソコンの中でいうと、CodeIgniterをインストールしたフォルダの中の「application」フォルダ、その中の「config」フォルダ、さらにその中にある「routes.php」というファイルです。

このファイルを開くと、ルーティングのルール(規則)を書くことができます。基本的な書き方は次のような形です。


$route['URLのパターン'] = 'コントローラー名/メソッド名';

左側の「URLのパターン」には、ユーザーがアクセスするURLを書き、右側には実際に実行したいコントローラーとメソッドを指定します。この設定により、URLと処理を自由に結びつけることができるのです。

4. 実際のルーティング設定例

4. 実際のルーティング設定例
4. 実際のルーティング設定例

それでは、具体的なルーティングの設定例を見てみましょう。例えば、「about」というURLにアクセスしたときに、「Pages」コントローラーの「about」メソッドを実行したい場合は、次のように書きます。


$route['about'] = 'pages/about';

この設定により、ユーザーが「https://example.com/about」にアクセスすると、Pagesコントローラーのaboutメソッドが実行されます。

また、商品の詳細ページのように、URLに商品IDなどの値を含めたい場合もあります。そのような場合は、次のように書きます。


$route['product/(:num)'] = 'products/detail/$1';

ここで(:num)は数字を表す特別な記号で、$1はその数字をメソッドに渡すという意味です。例えば「https://example.com/product/123」にアクセスすると、Productsコントローラーのdetailメソッドに「123」という値が渡されます。

5. デフォルトルートとは?

5. デフォルトルートとは?
5. デフォルトルートとは?

CodeIgniterには、デフォルトルートという特別な設定があります。これは、ユーザーがウェブサイトのトップページ(例:https://example.com/)にアクセスしたときに、どのコントローラーとメソッドを実行するかを決める設定です。

デフォルトルートの設定は次のように書きます。


$route['default_controller'] = 'welcome';

この設定では、トップページにアクセスすると「Welcome」コントローラーの「index」メソッドが実行されます。多くのウェブサイトでは、トップページにお知らせや商品一覧を表示するので、このデフォルトルートの設定はとても重要です。

また、存在しないページにアクセスされたとき(いわゆる404エラー)の設定も可能です。


$route['404_override'] = 'errors/page_missing';

このように設定すると、存在しないURLにアクセスされた場合、エラーページを表示するコントローラーが実行されます。

6. ワイルドカードを使った柔軟なルーティング

6. ワイルドカードを使った柔軟なルーティング
6. ワイルドカードを使った柔軟なルーティング

CodeIgniterのルーティングでは、ワイルドカードという便利な機能が使えます。ワイルドカードとは、「どんな文字でもOK」という意味の特別な記号のことです。これを使うと、様々なパターンのURLに対応できます。

主なワイルドカードには次のようなものがあります。

  • (:any) - どんな文字でもマッチします
  • (:num) - 数字だけにマッチします
  • (:alpha) - 英字だけにマッチします
  • (:alphanum) - 英数字だけにマッチします

例えば、ブログ記事のURLで記事タイトルをURLに含めたい場合、次のように設定できます。


$route['blog/(:any)'] = 'blog/article/$1';

この設定により、「https://example.com/blog/my-first-post」のようなURLでも、「https://example.com/blog/hello-world」のようなURLでも、同じBlogコントローラーのarticleメソッドで処理できるようになります。

7. ルーティングの優先順位

7. ルーティングの優先順位
7. ルーティングの優先順位

ルーティング設定ファイルに複数のルールを書いた場合、CodeIgniterはファイルの上から順番にチェックしていきます。そして、最初にマッチしたルールが適用されます。これは優先順位と呼ばれる仕組みです。

例えば、次のような設定があったとします。


$route['products/special'] = 'products/special_list';
$route['products/(:any)'] = 'products/detail/$1';

この場合、「https://example.com/products/special」にアクセスすると、最初のルールが適用されてspecial_listメソッドが実行されます。もし2つのルールの順番が逆だったら、「special」という文字が「(:any)」にマッチしてしまい、detailメソッドが実行されてしまいます。

そのため、より具体的なルールを上に、より汎用的なルールを下に書くことが重要です。これは道路標識のようなもので、「この先、特定の場所への案内」を先に書いて、「その他の場所」は後に書くイメージです。

8. ルーティングを使うメリット

8. ルーティングを使うメリット
8. ルーティングを使うメリット

CodeIgniterのルーティング機能を使うことで、いくつかの大きなメリットがあります。

まず1つ目は、URLを自由にデザインできることです。通常、コントローラーやメソッドの名前がそのままURLになりますが、ルーティングを使えば好きなURLを設定できます。例えば、「お問い合わせ」ページのURLを日本語で作りたい場合や、SEO対策で検索エンジンに分かりやすいURLにしたい場合に便利です。

2つ目は、プログラムの構造を隠せることです。実際のコントローラー名やメソッド名をURLに直接表示しないことで、セキュリティが向上します。悪意のある人にプログラムの構造を知られにくくなるのです。

3つ目は、URLの変更に柔軟に対応できることです。ウェブサイトを運営していると、URLの構造を変更したくなることがあります。ルーティングを使えば、実際のプログラムを変更せずにURLだけを変更できるため、メンテナンスが楽になります。

9. 実践的なルーティング設定のコツ

9. 実践的なルーティング設定のコツ
9. 実践的なルーティング設定のコツ

実際にウェブサイトを作る際のルーティング設定のコツをいくつか紹介します。

まず、ルーティング設定ファイルにはコメントを書くようにしましょう。コメントとは、プログラムとして実行されない説明文のことで、「//」や「/*」で始まる行です。どのルールが何のためにあるのかをコメントで書いておくと、後で見返したときに理解しやすくなります。

次に、似たような機能のルールはまとめて配置するようにしましょう。例えば、商品関連のルールは一箇所にまとめ、ユーザー管理関連のルールは別の場所にまとめることで、設定ファイルが読みやすくなります。

最後に、ルーティング設定を変更したら必ず動作確認を行いましょう。実際にブラウザでURLにアクセスして、意図した通りのページが表示されるかを確認します。特に優先順位の影響で予期しない動作になることがあるので、テストは重要です。

10. ルーティングでよくある間違いと対処法

10. ルーティングでよくある間違いと対処法
10. ルーティングでよくある間違いと対処法

CodeIgniterのルーティングを使い始めたばかりの方が陥りやすい間違いと、その対処法を紹介します。

1つ目は、スペルミスです。コントローラー名やメソッド名を間違えて書いてしまうと、ページが表示されません。エラーメッセージをよく読んで、スペルが正しいか確認しましょう。特に大文字と小文字の違いにも注意が必要です。

2つ目は、ワイルドカードの位置を間違えることです。ワイルドカードは適切な位置に配置しないと、意図した通りにマッチしません。URLの構造をよく考えて、どの部分を変動させたいのかを明確にしましょう。

3つ目は、優先順位を考慮していないことです。前述の通り、ルールは上から順に評価されます。より具体的なルールを先に書き、汎用的なルールを後に書くことを忘れないようにしましょう。

これらのポイントに気をつければ、CodeIgniterのルーティングを効果的に使いこなせるようになります。最初は戸惑うかもしれませんが、実際に手を動かして試してみることで、だんだんと理解が深まっていきますよ。

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelの認証状態をチェックする方法を完全解説!authとAuth::check()を初心者向けにやさしく説明
New2
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New3
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New4
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravelのビューとは?Bladeテンプレートの基本を解説
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.5
Java&Spring記事人気No5
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.7
Java&Spring記事人気No7
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)
No.8
Java&Spring記事人気No8
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド