我正在尝试拥有管理子域名(like this)
Route::group(['domain' => 'admin.localhost'], function () {
Route::get('/', function () {
return view('welcome');
});
});
但admin.localhost就像localhost一样。 我该如何正确地做到这一点?
我在OSX上使用Laravel 5.1和MAMP
答案 0 :(得分:16)
Laravel以先来先服务的方式处理路线,因此您需要将最少的特定路线放在路线文件中。这意味着您需要将路由组放在具有相同路径的任何其他路由之上。
例如,这将按预期工作:
Route::group(['domain' => 'admin.localhost'], function () {
Route::get('/', function () {
return "This will respond to requests for 'admin.localhost/'";
});
});
Route::get('/', function () {
return "This will respond to all other '/' requests.";
});
但是这个例子不会:
Route::get('/', function () {
return "This will respond to all '/' requests before the route group gets processed.";
});
Route::group(['domain' => 'admin.localhost'], function () {
Route::get('/', function () {
return "This will never be called";
});
});
答案 1 :(得分:1)
Laravel的例子......
javafx.application.Application
您的代码
Route::group(['domain' => '{account}.myapp.com'], function () {
Route::get('user/{id}', function ($account, $id) {
//
});
});
如果查看laravel示例,它会在路径中获取参数Route::group(['domain' => 'admin.localhost'], function () {
Route::get('/', function () {
return view('welcome');
});
});
,这样我们就可以根据此变量进行路由。然后可以将其应用于组或其中的任何路径。
那就是说,如果它不是由您的数据库驱动的东西,而您只是想要它与admin子域,我个人会这样做作为nginx配置。
如果你想在本地测试nginx(更简单),我个人建议用docker进行开发。
希望这能回答你的问题,如果不是让我知道并且生病了,试着为你回答。