Laravel 子域路由不起作用

Laravel subdomain routing is not working

我正在尝试拥有一个管理子域 (like this)

Route::group(['domain' => 'admin.localhost'], function () {
    Route::get('/', function () {
        return view('welcome');
    });
});

但是admin.localhost acts just like localhost。 我应该如何正确执行此操作?

我在 OSX

上使用 Laravel 5.1 和 MAMP

Laravel的例子...

Route::group(['domain' => '{account}.myapp.com'], function () {
    Route::get('user/{id}', function ($account, $id) {
        //
    });
});

您的代码

Route::group(['domain' => 'admin.localhost'], function () {
    Route::get('/', function () {
        return view('welcome');
    });
});

如果你看一下laravel的例子,它在路由中获取参数$account,这样我们就可以根据这个变量进行路由。然后可以将其应用于组或其中的任何路由..

就是说,如果它不是由您的数据库驱动的,而您只是希望它具有管理子域,我会亲自将其作为 nginx 配置。

如果你想在本地测试 nginx(更简单),我个人建议使用 docker 进行开发。

希望这能回答您的问题,如果没有请告诉我,我会尽力为您解答。

Laravel 在 first-come-first-serve 的基础上处理路由,因此您需要将最不具体的路由放在路由文件的最后。这意味着您需要将您的路由组置于具有相同路径的任何其他路由之上。

例如,这将按预期工作:

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";
    });
});