2017-03-05 70 views
0

我想使用一个服务器,它使用基本的Laravel安装,并具有引用该安装的子域。所有子域名将与SaaS相同。Laravel 5一个实例,多个相同的子域

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

子域世界包括其子域的最小需要的文件 - 也许公共索引和引导?希望没有符号化所有的东西。

我并不担心服务器配置,我只是想指出Laravel代码的正确方向,就像中间件处理请求然后指向该子域一样?

我读过的很多线索都没有一个标准答案,任何想法或链接?

此外,如果它是一个多服务器的安装程序将不会有一个与核心的NFS服务器好吗?

回答

3

使用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-domain-routing


BOUNTY

你也可以提供更多的参数给相同的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。网
+0

令人惊叹的,谢谢先生! – JREAM

相关问题