2016-08-30 4 views
0

일부 도메인은 하위 도메인에서 라우팅되는 것처럼 작동해야하는 하나의 응용 프로그램을 만들고 있습니다.가상 서브 도메인 이름을 사용한 라우트 라우팅

NB : 하위 도메인을 만들고 싶지 않습니다. 모든 것이 컨트롤러와 경로에서 작동합니다.

이 내가 URL이처럼 보이게하려고

Route::group(['domain' => '{site}.myapp.com'], function() { 
    Route::get('/{site}/{page}', '[email protected]'); 

}); 

경로를입니다

http://myapp.com/site/Home 

URL입니다

http://site.myapp.com/Home 

는 사람이 어떻게 이것을 달성하는 데 도움이 수 하나?

+0

현재 설치 프로그램을 사용하면 http://site.myapp.com/site/에 전화해야합니다. 기본적으로 사이트 매개 변수가 두 번 있습니다. 내부 경로로 {site}을 (를) 제거하십시오. 페이지 @ 사이트는 여전히 사이트 매개 변수를 알고 있어야합니다 –

+0

바로 하위 도메인을 만들 필요가 없습니까? –

+0

이 작업을하려면 반드시 하위 도메인 와일드 카드가 필요합니다. 귀하의 서버가 귀하의 laravel 구현을 인식하지 못합니다. 기본적으로 * .mysite.com이 공용 폴더 –

답변

0

당신은 시도하는 것을 우아하게하는 기회가 오직 한 번 있습니다. 하위 도메인 와일드 카드가 필요합니다. 즉, hoster는 * .mydomain.tdl을 하위 도메인으로 정의 할 수있는 옵션을 제공합니다.

이 하위 도메인은 mydomain.tdl과 정확히 동일한 폴더를 가리켜 야하므로 앱의 공용 폴더가됩니다. 다른 것을 바꾸지 마십시오.

마지막 매개 변수로 모든 하위 도메인을 가져 오기 위해 그룹을 정의 단순히 또한 그룹 외부 두 번째 일반적인 경로를 정의 할 수 있습니다 테스트 목적

Route::group(['domain' => '{user}.mydomain.tdl'], function() 
{ 
    Route::get('{site}', '[email protected]'); 
} 

지금

Route::get('{user}/{site}', '[email protected]'); 

당신은 액세스 옵션이 페이지

  • username.mydomain.tdl/sitename
  • mydomain.tdl/이름/사이트 이름

는 다음의주의 : 와일드 카드를 정의하면 www가 너무 하위 도메인입니다. 따라서 www가 귀하의 defiend 하위 도메인과 일치하기 시작할 것입니다.

또 다른 중요한 세부 사항은 localhost에서 실행하는 데 어려움이 있습니다. 와일드 카드에 대해 잘 모르는 경우 그룹과 일치하는 특정 하위 도메인을 정의하십시오.

example.myDomain.tdl은 (myDomain.tdl과 마찬가지로) laravel - app 공용 폴더를 가리킬 수 있으며 다음과 같이 예제를 전달해야합니다. 매개 변수 : 정의 된 경로에 대한 매개 변수

관련 문제