カテゴリ: Laravel 更新日: 2025/12/22

Laravelのルーティングでサブドメインを使う方法!初心者向けにやさしく解説

Laravelのルーティングでサブドメインを使う方法
Laravelのルーティングでサブドメインを使う方法

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

生徒

「Laravelでサブドメインごとに違うページを表示させることってできますか?」

先生

「はい、Laravelのルーティング機能を使えば簡単にサブドメインごとのページを作ることができますよ。」

生徒

「サブドメインって何か教えてください。初心者でもわかる説明でお願いします。」

先生

「サブドメインとは、インターネットの住所であるドメイン名の中にある、メインドメインの前に付く部分です。例えば blog.example.comblog がサブドメインです。メインのドメインが example.com なら、その前に付く名前でサイトの違いを作ることができます。」

先生

「それでは、Laravelでサブドメインを使う方法を一緒に見ていきましょう!」

1. サブドメインとは?

1. サブドメインとは?
1. サブドメインとは?

サブドメインは、ドメイン名の前に付ける名前のことで、たとえば shop.example.comsupport.example.com のように、異なるサイトや機能を区別するために使います。サブドメインを使うと、同じメインドメインの中で複数のサイトを作ることができます。

2. Laravelのルーティングでサブドメインを使う基本

2. Laravelのルーティングでサブドメインを使う基本
2. Laravelのルーティングでサブドメインを使う基本

Laravelでは、Route::domain() メソッドを使ってサブドメインを指定できます。例えば、blog.example.com にだけアクセスできるルートを作りたい場合は、次のように書きます。


Route::domain('blog.example.com')->group(function () {
    Route::get('/', function () {
        return 'ブログのトップページです';
    });
});

このように書くことで、blog.example.com にアクセスしたときだけ、このルートが使われます。

3. ワイルドカードを使ったサブドメインの動的ルーティング

3. ワイルドカードを使ったサブドメインの動的ルーティング
3. ワイルドカードを使ったサブドメインの動的ルーティング

サブドメインの名前を動的に扱いたい場合は、ワイルドカードを使います。ワイルドカードは、どんな文字でも当てはまる「ひとつの穴」のようなものです。

例えば、{account}.example.com のように書くと、account の部分が自由に変わり、ルート内でその値を使えます。


Route::domain('{account}.example.com')->group(function () {
    Route::get('/', function ($account) {
        return "サブドメイン: {$account} のページです";
    });
});

この場合、foo.example.com にアクセスすると「サブドメイン: foo のページです」と表示され、bar.example.com なら「サブドメイン: bar のページです」と表示されます。

4. ローカル開発環境でサブドメインを試す方法

4. ローカル開発環境でサブドメインを試す方法
4. ローカル開発環境でサブドメインを試す方法

サブドメインの動作を自分のパソコンで試すには、hosts ファイルにサブドメインを登録します。たとえば 127.0.0.1 blog.example.test のように書きます。

これにより、ブラウザで http://blog.example.test にアクセスするとローカルのLaravelアプリでサブドメインを扱えます。


127.0.0.1 example.test
127.0.0.1 blog.example.test

hosts ファイルの編集は管理者権限が必要です。間違えるとネットに繋がらなくなる可能性があるので注意してください。

5. サブドメインを使うときの注意点

5. サブドメインを使うときの注意点
5. サブドメインを使うときの注意点
  • 本番環境ではサーバーのDNS設定やWebサーバーの設定でサブドメインを登録する必要があります。
  • SSL証明書もサブドメインごとに用意するか、ワイルドカード証明書を使う必要があります。
  • セッションやクッキーの扱いに注意し、ドメイン全体で共有する場合は設定が必要です。
  • Laravelの環境変数でサブドメイン名を管理すると便利です。

6. 共通ルートとサブドメイン別ルートの使い分け

6. 共通ルートとサブドメイン別ルートの使い分け
6. 共通ルートとサブドメイン別ルートの使い分け

すべてのサブドメインで共通のルートを使いたい場合は、普通にルートを定義します。サブドメインごとに別の処理をしたい時だけ Route::domain() を使い分けましょう。


Route::get('/about', function () {
    return 'すべてのドメインでアクセスできるページです';
});

Route::domain('blog.example.com')->group(function () {
    Route::get('/about', function () {
        return 'ブログ専用のAboutページです';
    });
});

まとめ

まとめ
まとめ

Laravelでサブドメインを使ったルーティングを学ぶことで、ひとつのアプリケーションの中に複数の役割や機能を整理しながら作り分ける方法を身につけることができます。とくにサブドメインは、メインのドメインの前に自由な名前を付けることで、ブログ用、ショップ用、サポート用というように、ひとつのサービスの中で複数の領域を構築できる便利な仕組みです。Laravelはこの仕組みを標準でサポートしているため、Route::domain() を使うだけで簡単にサブドメイン専用のルートを作れます。しかも、ワイルドカードを使えば、動的に変化するサブドメインに対応したページも自動で切り替えられるので、ユーザーごとに独自のサブドメインを割り当てるようなサービスにも応用できます。こうした柔軟なルーティングは、小規模なアプリだけでなく、企業向けの大規模なシステムや、複数店舗を持つECサイトなどでも役に立ちます。 また、ローカル環境でサブドメインを試す方法として、hostsファイルを編集する手順も理解しておくと開発がスムーズになります。通常、サブドメインをローカルで動かすにはDNSの設定が必要ですが、hostsファイルを使えば、開発中でも自由にサブドメインを模擬できます。Laravelのルーティング設定と合わせることで、複雑なドメイン構造でも正しく動作確認ができるようになります。さらに、本番環境ではDNS設定やSSL証明書の準備が欠かせないため、サブドメインを用いた開発ではサーバー側の設定も含めて理解を深めておくことが大切です。とくにSSLは、サブドメインごとに証明書を発行するか、ワイルドカード証明書を利用するかによって管理方法が変わるため、事前の設計が重要になります。 サブドメインを使ったルーティングは便利な半面、セッションやクッキーの扱いにも注意が必要です。サブドメイン間でログイン状態を共有したい場合、Laravel側でドメイン設定を変更しておかないとクッキーが正しく扱われず、意図せずログイン状態が切れてしまうことがあります。逆に、共有したくない場合はドメインを分けて管理することでセキュリティを高めることができます。用途に応じて使い分けることで、安全で快適なWebアプリケーションを構築できます。 さらに、サブドメインごとに異なるルートやコントローラを割り当てることで、特定のユーザーグループやサービス領域ごとに専用の画面を提供することも可能です。たとえば admin.example.com は管理者専用、member.example.com は会員専用というように分ければ、機能の整理がしやすくなるだけでなく、UIや機能のカスタマイズも自由に行えます。また、共通のルートは通常のRoute::get()をそのまま使い、サブドメインごとに切り替えたい部分だけRoute::domain() を使用することで、無駄のない構成を保つことができます。Laravelはこのような柔軟なルーティング構造に対応しているため、実務でも非常に重宝されるテクニックとなります。 サブドメインを活用したアプリケーションは、ユーザーごとに独自のページを持てるサービス、企業ごとに管理画面を分離するシステム、特定のブランドやサービスごとに独立したサイトを持つ構成など、多くの場面で採用されています。Laravelのルーティング機能は、こうした構成に適した仕組みが初めから用意されているため、複雑なWebサービスでもわかりやすく開発を進めることができます。今回学んだポイントを押さえておくと、アプリの設計段階からサブドメインを利用した構造を考えられるようになり、より高度なWebアプリケーションにも挑戦できるようになります。

サンプルプログラム:サブドメインごとにコントローラを切り替える


use App\Http\Controllers\BlogController;
use App\Http\Controllers\SupportController;

// ブログ専用サブドメイン
Route::domain('blog.example.com')->group(function () {
    Route::get('/', [BlogController::class, 'index']);
});

// サポート専用サブドメイン
Route::domain('support.example.com')->group(function () {
    Route::get('/', [SupportController::class, 'index']);
});

    
先生と生徒の振り返り会話

生徒

「サブドメインって聞いたことはありましたが、Laravelでこんなに簡単に扱えるとは思いませんでした。用途ごとにサイトを分けられるのは便利ですね。」

先生

「そうなんです。サブドメインは大規模なサービスほど役立つ仕組みですし、Laravelは設定がとてもシンプルなので初心者でも取り入れやすいんですよ。」

生徒

「ワイルドカードで動的にサブドメインを扱えるのも面白いですね。ユーザーごとに専用ページを作るサービスにも応用できそうです。」

先生

「その通りです。サブドメインの仕組みを理解しておくと、設計の幅が広がります。ローカル環境で試す方法や注意点も覚えておくと、実務でもすぐに活かせますよ。」

生徒

「今回学んだ内容を自分の開発でも使ってみます。ルーティングが整理されると全体が見やすくなりそうです。」

先生

「ぜひ実践してみてください。慣れてくるとサブドメインを使い分ける設計が自然にできるようになりますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Laravelでサブドメインとは何ですか?

Laravelでのサブドメインとは、メインドメインの前に付ける文字列で、blog.example.comやshop.example.comのようにサイトを区別するために使います。
関連記事:
カテゴリの一覧へ
新着記事
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でルートをBladeテンプレートに記述する方法(route関数)
No.7
Java&Spring記事人気No7
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド
No.8
Java&Spring記事人気No8
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)