2017-02-27 273 views
0

我想創建一個通配符路由來託管多個域。只要我不使用國家/地區特定的域名,它就會起作用。Laravel通配符路由

Route::group([ 
    'domain' => 'admin.{domain}.{tld}', 
    'namespace' => 'Admin\Pages' 
], function() { 
    require base_path('routes/web/admin/pages.php'); 
}); 

主要領域看'domain' => 'admin.{domain}.{tld}'

這適用於域上的單個擴展名,例如。 domain.com但它不適用於具有國家代碼的域名,例如。 domain.com.au。捕獲tld和國家代碼的通配符是什麼,以便兩個域都可以工作,而不僅僅是一個。

該示例適用於例如'domain' => 'admin.{domain}.com.au',但不是動態的。

+0

使用兩個通配符時,「tld」的值是什麼?空值?空字符串?還有,你使用的是哪個版本的laravel? –

+0

Laravel 5.4 {tld} == .com或者.org(etc) – robertmylne

+0

和'domain'的值? –

回答

0

好吧,所以我解決了它。

admin.{domain}.{tld}.{cc}

不要緊,他們都只要命名爲他們足夠的時間趕上所有的擴展。它們被保存到$ domain等變量中,可用於關閉內部。

+0

出於好奇,像example.com這樣的域名(沒有國家代碼)會發生什麼情況? –

+0

從我的有限測試看來,它只是被忽視。我已經測試過.com和.com。 au有和沒有子域名,他們似乎都很好。 – robertmylne