반응형
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 를 변수로 받아서 잘 연결된 모습입니다.
* 참고 : 위와 같이 서브 도메인을 연결시 NginX 나 Apache 설정에는 도메인을 와일드 카드로 받을 수 있게 끔 처리해 주셔야 합니다.
아래는 Nginx 연동의 도메인 부분의 한 예제 입니다.
server {
listen 80;
server_name 0n1.dev *.0n1.dev;
location ~ /.well-known {
allow all;
}
index index.php index.html;
}
즐거운 하루 되시기 바랍니다.
반응형