목차
재료 준비
Split 도메인 이름을 매개변수로
关于多域名
server_name *.amor_laravel_test_1.amor;
참고:
PHP 프레임워크 Laravel 여러 도메인 이름 문제를 해결하기 위한 Laravel 라우팅 도메인에 대한 자세한 설명

여러 도메인 이름 문제를 해결하기 위한 Laravel 라우팅 도메인에 대한 자세한 설명

Mar 30, 2021 pm 05:15 PM
laravel nginx php

다음 튜토리얼 칼럼인 laravel에서는 여러 도메인 이름 문제를 해결하기 위한 Laravel 라우팅 연구 도메인을 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

여러 도메인 이름 문제를 해결하기 위한 Laravel 라우팅 도메인에 대한 자세한 설명

여러 도메인 이름 문제를 해결하기 위한 도메인에 대한 Laravel 라우팅 연구

재료 준비

  • 깨끗한 laravel
  • 두 개의 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;
    로그인 후 복사

Split 도메인 이름을 매개변수로

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

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

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

    });
});
로그인 후 복사

참고: 계정이 고정되지 않은 경우 Nginx 서버 이름을 일반으로 구성할 수 있습니다: *.example.com*.example.com

关于多域名

配置两个不同的域名如下:

  1. server_name *.amor_laravel_test.amor;
  2. server_name *.amor_laravel_test_1.amor;
  3. 여러 도메인 이름 정보

구성 다음과 같은 두 개의 서로 다른 도메인 이름:

    server_name *.amor_laravel_test.amor;

    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'));
        }
    로그인 후 복사

    Register

        public function map()
        {
            $this->mapApiRoutes();
    
            $this->mapWebRoutes();
    
            $this->mapSelfRoutes();
    
            //
        }
    로그인 후 복사

    라우트 파일 추가

    Route::get('/user', function ($account) {
        dd($account);
    });
    로그인 후 복사

    참고:

    필수 모든 도메인이 설정됩니다. 자체만 설정된 경우 동일한 요청 경로에서 설정되지 않은 도메인이 먼저 일치됩니다.


    [추천:

    최신 5개 Laravel 비디오 튜토리얼
      ]
    • 여러 도메인 이름으로 라우팅할 때 Action에 대한 지침

    • 우선 Action이 경로가 바인딩될 컨트롤러를 결정한다는 점을 알아야 합니다. 한 가지 더 주의할 점은 경로의 Action 속성이 보조 함수인 Route()에 의해 생성된 URL을 결정한다는 것입니다.
    • 라우팅 구성이 다음과 같다고 가정해 보겠습니다.

    첫 번째 경로

    Route::get('/', function () {
        if(\Illuminate\Support\Facades\Auth::check()) {
            return redirect('index');
        } else {
            return redirect('login');
        }
    });
    로그인 후 복사
    로그인 후 복사

    두 번째 경로

    Route::get('/', function () {
        if(\Illuminate\Support\Facades\Auth::check()) {
            return redirect('index');
        } else {
            return redirect('login');
        }
    });
    로그인 후 복사
    로그인 후 복사

    는 정확히 동일합니다. 둘 다 내장된 로그인 경로를 호출하고 컨트롤러도 동일합니다. 템플릿을 살펴보겠습니다.

    <form method="POST" class="form-horizontal" action="{{ route(&#39;login&#39;) }}">
    ---
    </form>
    로그인 후 복사

    route() 보조 함수는 경로 이름 목록에 로드된 로그인을 읽습니다. 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. 도메인 이름이지만 매개변수 분할, 다른 도메인 이름 구별 등에 사용될 수도 있습니다. 🎜 3. Laravel의 라우팅 일치 순서에 주의하세요. 모두가 신중하게 수행하고 경험하고 알아두시기 바랍니다🎜4. 이제 도메인 이름이 구별되었으므로 이를 다른 컨트롤러에 바인딩하거나 다른 모델에 바인딩할 수 있습니다. 모두가 유연하게 적용할 수 있습니다🎜🎜🎜🎜

    위 내용은 여러 도메인 이름 문제를 해결하기 위한 Laravel 라우팅 도메인에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

    핫 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 옷 제거제

    AI Hentai Generator

    AI Hentai Generator

    AI Hentai를 무료로 생성하십시오.

    뜨거운 도구

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

    중국어 버전, 사용하기 매우 쉽습니다.

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

    신 수준의 코드 편집 소프트웨어(SublimeText3)

    PHP : 데이터베이스 및 서버 측 로직 처리 PHP : 데이터베이스 및 서버 측 로직 처리 Apr 15, 2025 am 12:15 AM

    PHP는 MySQLI 및 PDO 확장 기능을 사용하여 데이터베이스 작업 및 서버 측 로직 프로세싱에서 상호 작용하고 세션 관리와 같은 기능을 통해 서버 측로 로직을 처리합니다. 1) MySQLI 또는 PDO를 사용하여 데이터베이스에 연결하고 SQL 쿼리를 실행하십시오. 2) 세션 관리 및 기타 기능을 통해 HTTP 요청 및 사용자 상태를 처리합니다. 3) 트랜잭션을 사용하여 데이터베이스 작업의 원자력을 보장하십시오. 4) SQL 주입 방지, 디버깅을 위해 예외 처리 및 폐쇄 연결을 사용하십시오. 5) 인덱싱 및 캐시를 통해 성능을 최적화하고, 읽을 수있는 코드를 작성하고, 오류 처리를 수행하십시오.

    PHP의 목적 : 동적 웹 사이트 구축 PHP의 목적 : 동적 웹 사이트 구축 Apr 15, 2025 am 12:18 AM

    PHP는 동적 웹 사이트를 구축하는 데 사용되며 해당 핵심 기능에는 다음이 포함됩니다. 1. 데이터베이스와 연결하여 동적 컨텐츠를 생성하고 웹 페이지를 실시간으로 생성합니다. 2. 사용자 상호 작용 및 양식 제출을 처리하고 입력을 확인하고 작업에 응답합니다. 3. 개인화 된 경험을 제공하기 위해 세션 및 사용자 인증을 관리합니다. 4. 성능을 최적화하고 모범 사례를 따라 웹 사이트 효율성 및 보안을 개선하십시오.

    PHP 및 Python : 코드 예제 및 비교 PHP 및 Python : 코드 예제 및 비교 Apr 15, 2025 am 12:07 AM

    PHP와 Python은 고유 한 장점과 단점이 있으며 선택은 프로젝트 요구와 개인 선호도에 달려 있습니다. 1.PHP는 대규모 웹 애플리케이션의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 데이터 과학 및 기계 학습 분야를 지배합니다.

    Docker에서 거울을 만드는 방법 Docker에서 거울을 만드는 방법 Apr 15, 2025 am 11:27 AM

    Docker 이미지 생성 단계 : 빌드 지침이 포함 된 Dockerfile을 작성하십시오. Docker 빌드 명령을 사용하여 터미널에 이미지를 빌드하십시오. Docker 태그 명령을 사용하여 이미지를 태그하고 이름과 태그를 지정하십시오.

    Docker 컨테이너의 이름을 확인하는 방법 Docker 컨테이너의 이름을 확인하는 방법 Apr 15, 2025 pm 12:21 PM

    단계를 따르면 Docker 컨테이너 이름을 쿼리 할 수 ​​있습니다. 모든 컨테이너 (Docker PS)를 나열하십시오. 컨테이너 목록을 필터링합니다 (GREP 명령 사용). 컨테이너 이름 ( "이름"열에 위치)을 가져옵니다.

    PHP : 서버 측 스크립팅 언어 소개 PHP : 서버 측 스크립팅 언어 소개 Apr 16, 2025 am 12:18 AM

    PHP는 동적 웹 개발 및 서버 측 응용 프로그램에 사용되는 서버 측 스크립팅 언어입니다. 1.PHP는 편집이 필요하지 않으며 빠른 발전에 적합한 해석 된 언어입니다. 2. PHP 코드는 HTML에 포함되어 웹 페이지를 쉽게 개발할 수 있습니다. 3. PHP는 서버 측 로직을 처리하고 HTML 출력을 생성하며 사용자 상호 작용 및 데이터 처리를 지원합니다. 4. PHP는 데이터베이스와 상호 작용하고 프로세스 양식 제출 및 서버 측 작업을 실행할 수 있습니다.

    Laravel의 주요 기능 : 백엔드 개발 Laravel의 주요 기능 : 백엔드 개발 Apr 15, 2025 am 12:14 AM

    백엔드 개발에서 Laravel의 핵심 기능에는 라우팅 시스템, eloquentorm, 마이그레이션 기능, 캐시 시스템 및 큐 시스템이 포함됩니다. 1. 라우팅 시스템은 URL 매핑을 단순화하고 코드 구성 및 유지 보수를 향상시킵니다. 2. ELOQUENTORM은 객체 지향 데이터 작업을 제공하여 개발 효율성을 향상시킵니다. 3. 마이그레이션 함수는 버전 제어를 통해 데이터베이스 구조를 관리하여 일관성을 보장합니다. 4. 캐시 시스템은 데이터베이스 쿼리를 줄이고 응답 속도를 향상시킵니다. 5. 큐 시스템은 대규모 데이터를 효과적으로 처리하고, 사용자 요청을 차단하지 않으며, 전반적인 성능을 향상시킵니다.

    Docker가 컨테이너를 시작하는 방법 Docker가 컨테이너를 시작하는 방법 Apr 15, 2025 pm 12:27 PM

    Docker Container Startup 단계 : 컨테이너 이미지를 당기기 : "Docker Pull [Mirror Name]"을 실행하십시오. 컨테이너 생성 : "docker"[옵션] [미러 이름] [명령 및 매개 변수]를 사용하십시오. 컨테이너를 시작하십시오 : "Docker start [컨테이너 이름 또는 ID]"를 실행하십시오. 컨테이너 상태 확인 : 컨테이너가 "Docker PS"로 실행 중인지 확인하십시오.

    See all articles