2017-02-27 503 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