Laravel 5一个实例,多个相同的子域



我想使用一台使用laravel安装的服务器,并具有引用该安装的子域。所有子域都将像SaaS一样。

我环顾四周,数据库连接很容易,但是我想知道您是否可以使用相同的代码库明智地进行此操作。

子域世界包含其子域的最低需要的文件 - 也许是公共索引和引导程序?希望不链接一切。

我不担心服务器配置,我只是想指向Laravel代码的正确方向,例如中间件来处理请求,然后指向该子域?

我读过的很多线程似乎都没有标准的答案,任何想法或链接?

另外,如果是多服务器设置

使用laravel,您可以在不使用子域而不使用的小组路由请求的情况下检查URL。

路由组也可用于处理子域路由。 可以像路由uris一样分配子域的路由参数 允许您捕获部分子域的一部分以便在您的 路线或控制器。可以使用 组属性阵列上的域键:

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

在Laravel文档上阅读有关此信息的更多信息https://laravel.com/docs/5.4/routing#route-group-sub-sub-domain-routing


赏金

您还可以向同一Route::group提供更多参数,例如

Route::group(['domain' => '{subdomain}.{domain}.{tld}'], function () {
    Route::get('user/{id}', function ($account, $id) {
        // your code
    });
});

同时,您可以决定使用Route::pattern定义限制要接受的域参数。

Route::pattern('subdomain', '(dev|www)');
Route::pattern('domain', '(example)');
Route::pattern('tld', '(com|net|org)');
Route::group(['domain' => '{subdomain}.{domain}'], function () {
    Route::get('user/{id}', function ($account, $id) {
        // your code
    });
});

在上一个示例中,将接受以下所有域并正确路由

  • www.example.com
  • www.example.org
  • www.example.net
  • dev.example.com
  • dev.example.org
  • dev.example.net

最新更新