検索
ホームページPHPフレームワークLaravel複数ドメイン名の問題を解決するLaravelルーティングドメインの詳細説明

以下は、laravel の複数ドメイン名の問題を解決するための Laravel ルーティング研究ドメインを紹介するチュートリアルコラムです。

複数ドメイン名の問題を解決するLaravelルーティングドメインの詳細説明

複数ドメイン名の問題を解決するためのドメインの Laravel ルーティング研究

資料の準備

  • きれいなlaravel
  • 2 つの Nginx 構成ファイル、主な構成は次のとおりです。

    server_name *.amor_laravel_test_1.amor;
    root /var/www/amor_laravel_test/public;
    index index.php index.html index.htm;
    server_name *.amor_laravel_test.amor;
    root /var/www/amor_laravel_test/public;
    index index.php index.html index.htm;
#ドメイン名をパラメータに分割します

Route::domain('{account}.{webname}.{suffix}')->group(function () {

    Route::get('user/{id}', function ($account, $webname, $suffix, $id) {
        // 可以在请求中接收到被分割的参数,可能的使用场景:在单独路由中需要根据不同的域名处理不同的需求

        dd($account, $webname, $suffix, $id);

    });
});

注意: アカウントが固定されていない場合は、Nginx サーバー名を汎用として構成できます: #.example.com

複数のドメイン名について

2 つの異なるドメイン名を次のように構成します:

  1. server_name *.amor_laravel_test.amor;
  2. server_name *.amor_laravel_test_1.amor;
Laravel を異なるドメイン名と一致させるにはどうすればよいですか?

方法 1: ドメインを使用して、route/web.php

Route::domain('{account}.amor_laravel_test.amor')->group(function () {

    Route::get('user/{id}', function ($account, $id) {
        //

        dd($account, $id);

    });
});

Route::domain('{account}.amor_laravel_test_1.amor')->group(function () {

    Route::get('user/{id}', function ($account, $id) {
        //

        dd(111, $account, $id);

    });
});

方法 2: 設定によって区別するRouteServiceProvider

    メソッドの追加:
    protected function mapSelfRoutes()
    {
        Route::domain('{account}.amor_laravel_test_1.amor')
            ->middleware('web')
            ->namespace($this->namespace)
            ->group(base_path('routes/self.php'));
    }
    Registration
    public function map()
    {
        $this->mapApiRoutes();

        $this->mapWebRoutes();

        $this->mapSelfRoutes();

        //
    }
    ルーティング ファイルの追加
Route::get('/user', function ($account) {
    dd($account);
});

注: すべてのドメインを設定する必要があります。self のみが設定されている場合は、同じリクエスト パスの下で、設定されていないドメインが最初に一致します。

[推奨:

最新の 5 つの Laravel ビデオ チュートリアル ]

複数のドメイン名でのルーティングにおけるアクションの説明

まず、そのアクションを知る必要があります。ルートがバインドされるコントローラーを決定しますが、もう 1 つの注意点があります。ルートの Action 属性は、補助関数 Route() によって生成される URL を決定します。

ルーティング構成が次のようになっているとします。

  • 最初のルート

    Route::get('/', function () {
        if(\Illuminate\Support\Facades\Auth::check()) {
            return redirect('index');
        } else {
            return redirect('login');
        }
    });
  • 2 番目のルート

    Route::get('/', function () {
        if(\Illuminate\Support\Facades\Auth::check()) {
            return redirect('index');
        } else {
            return redirect('login');
        }
    });
まったく同じです。両方とも組み込みのログイン ルートを呼び出し、コントローラーも同じです。template


---
route() 補助関数のフォーム フォームを見てみましょう。ルート名リスト ロードされたログイン。これら 2 つのルーティング ファイルを RouteServiceProvider に同時にロードすると、

public function map()
{
    $this->mapApiRoutes();

    $this->mapWebRoutes();

    $this->mapSelfRoutes();

    //
}
その場合: 名前空間またはコントローラを区別しないと、ルート補助関数によって生成された絶対パスが最後のルート ドメインになります。したがって、ロジックに一貫性があり、簡単な変更によって異なるドメイン名で異なるサイトを区別したいだけの場合は、判断を下してオンデマンドでロードする必要があります:

public function map()
{
    if(request()->getHost() == env('ONLINEDOWN_DOMAIN')) {
        $this->mapApiRoutes();
    }

    if(request()->getHost() == env('PCSOFT_DOMAIN')) {
        $this->mapPcsoftRoutes();
    }

    $this->mapWebRoutes();
    //
}
概要:

1。 2 番目の方法は、ドメイン名を区別するために推奨されます。利点は、ルーティングが分離され、構造が明確になることです。

2. ドメインは、サブドメイン名を区別するために使用できるだけでなく、パラメータの分割にも使用できます。
3. Laravel に注意してください。慎重に実行し、経験して、ルーティングの一致順序についてよく理解していただければ幸いです。
4. ドメイン名が変更されました。区別できるため、異なるコントローラーにバインドしたり、異なるモデルをバインドしたりできます。

以上が複数ドメイン名の問題を解決するLaravelルーティングドメインの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
ズームコールを超えて:分散チームを接続するための創造的な戦略ズームコールを超えて:分散チームを接続するための創造的な戦略Apr 26, 2025 am 12:24 AM

ToenhanceEngagementAndCohesionAmongDistributedTeamSbeyOndzoom、実装してください

最新のLaravelバージョンの壊れた変更は何ですか?最新のLaravelバージョンの壊れた変更は何ですか?Apr 26, 2025 am 12:23 AM

laravel10introducesseveralbreakingchanges:1)itrequirephp8.1orhigher、2)therouteSerseprovidernowuseSabootdododdoddoddoddoddoddoddoddoddoddoddoddod forloadingroutes、3)the withtimestamps()methodoneLoquentrelationshipsissisdedisded and4)andosnowprefrefreferure()

生産性パラドックス:リモート設定での焦点と動機を維持する生産性パラドックス:リモート設定での焦点と動機を維持するApr 26, 2025 am 12:17 AM

WOCUSANDMOTIVERIANCIANGINTIANIVERMOTEWORK、CREATERUCTUREDENVIRONMENT、MANAGEDIGITALDISTRACTIONS、FOSTERMOTIVERIVESTROUGHSOCIAL-INTERACTIONSIONDANDGOALSETTINTING、MANTEMESTECHNOLOGY.1)SetUpAdedicatedWorkStickEndStickToTtoTtoTtoTtoTototine。

遠くからの信頼の構築:分散環境でのコラボレーションの育成遠くからの信頼の構築:分散環境でのコラボレーションの育成Apr 26, 2025 am 12:13 AM

tofostercollaboration and trustinRemoteteams、exprenttheStrategies:1)定期的で構造化された構造化された通信を確立します。

最新のLaravelバージョンの重要な機能は何ですか?最新のLaravelバージョンの重要な機能は何ですか?Apr 26, 2025 am 12:01 AM

Laravelの主な機能の最新バージョンには、1。Laraveloctaneのアプリケーションパフォーマンスの向上、2。モデルファクトリーサポート関係と状態定義の改善、3。強化された職人コマンド、4。これらの機能は、開発効率とアプリケーションのパフォーマンスを大幅に改善しますが、潜在的な問題を回避するために注意して使用する必要があります。

インクルージョンの幻想:リモートワークにおける孤立と孤独への対処インクルージョンの幻想:リモートワークにおける孤立と孤独への対処Apr 25, 2025 am 12:28 AM

トコンバティソルメントアンドロネリネスは、レモであり、regultionを実現し、等間grothopportunitionを提供し、効率的に使用します

フルスタック開発のためのLaravel:包括的なガイドフルスタック開発のためのLaravel:包括的なガイドApr 25, 2025 am 12:27 AM

laravelispopopularfulfull-stackdevelopment becuseiTOfferseamlessbbackEndpowendPowerandfflexibility.1)simplifyDatabaseItteractions.2)asbladetemplatingEngineallowsforclean、dynamictmltemplates.3)Laravelmix

ビデオ会議対決:リモート会議に適したプラットフォームを選択するビデオ会議対決:リモート会議に適したプラットフォームを選択するApr 25, 2025 am 12:26 AM

ビデオ会議プラットフォームを選択する際の重要な要因には、ユーザーインターフェイス、セキュリティ、および機能が含まれます。 1)ズームなど、ユーザーインターフェイスは直感的である必要があります。 2)セキュリティに注意を払う必要があり、Microsoftチームはエンドツーエンドの暗号化を提供します。 3)機能は要件を一致させる必要があり、Googlemeetは短い会議に適しており、Ciscowebexは高度なコラボレーションツールを提供します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、