2017-03-05 67 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