도메인 이름 라우팅
도메인 이름 라우팅
도메인 이름에 대한 라우팅 규칙을 별도로 설정할 수 있습니다. 예를 들어 블로그 하위 도메인에 대해 별도의 라우팅 규칙을 등록할 수 있습니다.
Route::domain('blog', function () { // 动态注册域名的路由规则 Route::rule('new/:id', 'news/read'); Route::rule(':user', 'user/info'); });
도메인 이름 라우팅이 정의되면 도메인 이름에 대한 액세스는 읽기만 가능합니다. 도메인 이름 라우팅 정의 라우팅 규칙.
경로 그룹화를 포함하여 다른 라우팅 방법을 클로저에 사용할 수 있지만 도메인 이름 라우팅은 포함될 수 없습니다.
동시에 여러 도메인 이름에 대해 동일한 라우팅 규칙 설정을 지원합니다.
Route::domain(['blog', 'admin'], function () { // 动态注册域名的路由规则 Route::rule('new/:id', 'news/read'); Route::rule(':user', 'user/info'); });
모든 도메인 이름에 걸쳐 라우팅하려면 그룹 라우팅 또는 특정 경로에 crossDomainRule 방법을 사용할 수 있습니다. 네임스페이스
Route::group( function () { // 动态注册域名的路由规则 Route::rule('new/:id', 'news/read'); Route::rule(':user', 'user/info'); })->crossDomainRule();클래스
// blog子域名绑定控制器 Route::domain('blog', '@blog');
에 바인딩된 네임스페이스// blog子域名绑定命名空间
Route::domain('blog', ':\app\blog\controller');
는 팬 도메인 이름 배포 규칙을 지원할 수 있습니다. 예:
// blog子域名绑定到类 Route::domain('blog', '\app\blog\controller\Article');다음 URL 액세스는 책 애플리케이션
// 绑定泛二级域名域名到book应用 Route::domain('*', 'book');에 직접 액세스하고 현재 도메인 이름은 Request::panDomain() 일반 도메인 이름 값을 통해 직접 얻을 수 있습니다.
3단계 팬 도메인 이름 배포를 지원합니다. 예:
http://hello.thinkphp.cn http://quickstart.thinkphp.cn
팬 도메인 이름 값을 추가 매개변수로 직접 전달하는 것도 지원합니다.
// 绑定泛三级域名到user应用 Route::domain('*.user', 'user');
현재 팬 도메인 이름 값을 가져올 수 있습니다. Request::param('name')
을 통해 현재 2단계 및 3단계 도메인 이름 배포만 지원됩니다.
응답 개체에 바인딩도메인 이름을 응답 개체에 직접 바인딩할 수 있습니다. 예:// 绑定泛三级域名到user应用 Route::domain('*.user', 'user?name=*');도메인 이름이 동시에 라우팅 규칙을 정의해야 하는 경우 다른 개체에 대한 바인딩 작업을 수행합니다. 상황에서는 클로저를 사용할 수 있습니다. 바인딩 작업은 내부에서 수행됩니다. 예:
// 绑定域名到Response对象 Route::domain('test', response()->code(404));는 블로그 도메인 이름 아래에 new/:id 라우팅 규칙을 정의하여 인덱스 애플리케이션을 가리키는 반면 다른 경로는 블로그 애플리케이션에 바인딩됩니다.
추가 매개변수 전달도메인 이름 바인딩 또는 라우팅 정의 후에 추가 숨겨진 매개변수를 전달할 수 있습니다. 예:
Route::domain('blog', function () { // 动态注册域名的路由规则 Route::rule('new/:id', 'index/news/read'); })->bind('blog');위의 도메인 이름 라우팅은 app_id 매개변수에 균일하게 전달되며 이 매개변수의 값 클래스의 param 메소드에서 Request Obtained를 통해 전달될 수 있습니다.
도메인 이름 바인딩 후 추가 매개변수를 직접 전달할 수도 있습니다.
Route::domain('blog', function () { // 动态注册域名的路由规则 Route::rule('new/:id', 'news/read'); Route::rule(':user', 'user/info'); })->append(['app_id'=>1]);
라우팅 매개변수도메인 이름 라우팅 자체도 라우팅 그룹이므로 라우팅 그룹과 같은 공개 라우팅 매개변수를 정의할 수 있습니다. 예:
Route::domain('blog', 'blog') ->append(['app_id'=>1]);