2016-08-30 3 views
0

Я делаю одно приложение, в котором некоторые маршруты должны действовать так, как будто они маршрутизируются из поддомена.Маршрутизация Laravel с именем виртуального поддомена

NB: Я не хочу создавать поддомены. Все будет работать с контроллерами и маршрутами.

Это гиперссылка

http://myapp.com/site/Home 

Это маршрут

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

}); 

Я пытаюсь сделать URL выглядеть

http://site.myapp.com/Home 

Может кто-нибудь помочь мне, как этого добиться один ?

+0

Текущая настройка заставит вас позвонить по адресу http://site.myapp.com/site/Home, у вас в основном есть параметр сайта дважды. Просто удалите {site} для вашего внутреннего маршрута. Сайт @ @ должен все еще знать о параметре сайта –

+0

Мне не нужно создавать права на поддоку? –

+0

Вам придётся использовать поддомен, чтобы получить эту работу. Ваш сержант не знает о вашей реализации laravel. Вы в основном определяете, что * .mysite.com указывает на вашу общую папку –

ответ

0

У вас есть только один шанс иметь изящный способ делать то, что вы пытаетесь сделать. Вам нужен так называемый поддомен. Это означает, что ваш хост дает вам возможность определять * .mydomain.tdl как субдомен.

Этот поддомен должен указывать на ту же папку, что и mydomain.tdl - так что общая папка вашего приложения. Не меняйте ничего другого.

Наконец определить группу для извлечения всех поддоменов в качестве параметра

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

Для целей тестирования вы можете также просто определить второй общий маршрут за пределами группы

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

Теперь вы должны параметры доступа страница

  • имя пользователя.mydomain.tdl/sitename
  • mydomain.tdl/имя пользователя/имя_сайта

Имейте в виду следующее: WWW является поддомен тоже, если вы определяете подстановочные. Поэтому www начнет сопоставлять ваш поддомен defiend.

Еще одна важная деталь заключается в том, что вам будет трудно выполнить это на локальном хосте. Если вы не уверены в подстановочных знаках, просто определите спецификацию нового поддомена, который также будет соответствовать группе

example.myDomain.tdl может указывать на общую папку larvel-app (так же, как myDomain.tdl), и должен передать пример как параметр для вашего определенного маршрута

Смежные вопросы