카테고리 없음

Laravel 에서 서브도메인 관리하기

LoggerONE 2021. 5. 14. 16:49
반응형



Laravel Web Router 에서 서브 도메인을 값으로 받아서 처리 하는 방법입니다.

서비스 구성시 사용자 별로 username 과 같은 이름을 기반으로 개인화 SubDomain을 구성하게 될 경우 사용하기에 좋은 방법입니다.

우선 routes/web.php 에 Route:domain 그룹을 만들어 줍니다. 그리고 내부에 연결하실 Controller 를 연결해 주시면 되는데요.

 

Route::domain('{groupname}.0n1.dev')->middleware([CheckGroup::class])->group(function () {
	
		Route::get('/',  [ViewGroupController::class, 'main'] ); // 메인	
		
		Route::get('/post/{post_id?}',  [ViewGroupController::class, 'post'] ); // Post
		Route::get('/page/{post_id?}',  [ViewGroupController::class, 'page'] ); // Page
		Route::get('/category/{post_id?}',  [ViewGroupController::class, 'page'] ); // Category
		
		Route::get('/{slug}',  [ViewGroupController::class, 'slug'] ); // Slug 처리 Route

});

 

이 경우 연결된 Controller 의 함수에 변수명을 연결하여 서브도메인의 값 연결이 가능합니다.

	public function main($groupname = null)
	{

		dd($groupname);
	}

 

아래는 logger 를 변수로 받아서 잘 연결된 모습입니다.

logger 를 연결
test 를 연결

 

* 참고 :  위와 같이 서브 도메인을 연결시 NginX 나 Apache 설정에는 도메인을 와일드 카드로 받을 수 있게 끔 처리해 주셔야 합니다.

아래는 Nginx 연동의 도메인 부분의 한 예제 입니다.

server {
        listen 80;

        server_name 0n1.dev *.0n1.dev;

        location ~ /.well-known {
                allow all;
        }


        index index.php index.html;

}

 

즐거운 하루 되시기 바랍니다.

 

반응형