Скажем, у меня есть следующее:
Route::group(array('domain' => array('admin.example.com')), function() { ... }); Route::group(array('domain' => array('app.example.com')), function() { ... }); Route::group(array('domain' => array('dev.app.example.com')), function() { ... });
Есть ли способ, чтобы несколько доменов совместно использовали группу маршрутизации? Что-то вроде:
Route::group(array('domain' => array('dev.app.example.com','app.example.com')), function() { ... });
Кажется, Ларавель не поддерживает это.
Я не уверен, почему я не думал об этом раньше, но я думаю, что одним из решений было бы просто объявить маршруты в отдельной функции, как передать их обеим группам маршрутов.
Route::group(array('domain' => 'admin.example.com'), function() { ... }); $appRoutes = function() { Route::get('/',function(){ ... }); }; Route::group(array('domain' => 'app.example.com'), $appRoutes); Route::group(array('domain' => 'dev.app.example.com'), $appRoutes);
Я не уверен, есть ли значительное влияние на это решение.
Laravel 5.1
Route::pattern('subdomain', '(dev.app|app)'); Route::group(['domain' => '{subdomain}.example.com'], function () { ... });
Route::pattern('subdomain', '(dev.app|app)'); Route::group(['domain' => '{subdomain}.example.com'], function () { ... });
Route::pattern('subdomain', '(dev.app|app)'); Route::pattern('domain', '(example.com|example.dev)'); Route::group(['domain' => '{subdomain}.{domain}'], function () { ... });
Route::pattern('subdomain', '(dev.app|app)'); Route::pattern('domain', '(example.com|example.dev)'); Route::group(['domain' => '{subdomain}.{domain}'], function () { ... });
Заинтересованы в этом! Я пытаюсь зарегистрировать локальный маршрут развития субдомена + для одного действия контроллера.
т.е.
# Local Dev Route::group(array('domain' => "{subdomain}.app.dev"), function() { Route::get('/{id}', 'SomeController@getShow'); }); # Production Server Route::group(array('domain' => "{subdomain}.app.com"), function() { Route::get('/{id}', 'SomeController@getShow'); });
Я пытался:
# Failed Route::group(array('domain' => "{account}.app.{top_level_domain}"), function() { Route::get('/{id}', 'SomeController@getShow'); });
Но это провалилось.
Не огромная проблема, так как DesignerGuy упомянул, что я могу просто передать функцию для обоих маршрутов – но это было бы просто более элегантно, если бы их можно было сгруппировать 🙂
проверьте в larvel docs , если вы являетесь основным доменом myapp, в производстве находится myapp.com
а в локальной среде myapp.dev
пытается использовать *
Route::group(array('domain' => '{subdomain}.myapp.*'), function() { ... });
В настоящее время вы не можете. У меня такая же проблема'; мое исправление заключается в том, чтобы перебирать ваши поддомены с помощью foreach и регистрировать маршруты.
см. эту ссылку. http://laravel.com/docs/routing#sub-domain-routing
Route::group(array('domain' => '{subdomain}.example.com'), function() { ... });
или Используйте этот пакет.
https://github.com/jasonlewis/enhanced-router
Это поможет вам установить, где на групповой маршрутизации, как это.
Route::group(array('domain' => '{maindomain}'), function() { ... })->where('maindomain', '.+\.example\.com$');