Php 拉维通配符路由
我正在尝试创建一个通配符路由来承载多个域。只要我不使用特定于国家/地区的域名,它就可以工作Php 拉维通配符路由,php,laravel,routing,Php,Laravel,Routing,我正在尝试创建一个通配符路由来承载多个域。只要我不使用特定于国家/地区的域名,它就可以工作 Route::group([ 'domain' => 'admin.{domain}.{tld}', 'namespace' => 'Admin\Pages' ], function () { require base_path('routes/web/admin/pages.php'); }); 查看'domain'=>'admin.{domain}.{tld}'
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'
,但它不是动态的。好的,所以我解决了这个问题
admin.{domain}.{tld}.{cc}
它们的名称并不重要,只要它们的句点足以捕获所有扩展。它们被保存到变量中,例如$domain,可以在闭包中使用。使用这两个通配符时,
tld
的值是多少?无效的空字符串?另外,您使用的是哪个版本的laravel?laravel 5.4{tld}==.com或.org(etc)和域的值
?它是一个通配符。因此,如果域是“example.com”,那么它将是“example”。显然,它是一个通配符,因为我们在这里讨论的是域通配符。是否设置了值,是否有空、未定义、空字符串?具体输出是什么?最糟糕的情况是,您需要构建一个中间件,将国家代码注入到请求中。或者使用带有正则表达式的筛选器来检查国家代码。出于好奇,像example.com
(没有国家代码的域)这样的域会发生什么情况?从我有限的测试来看,它看起来只是被忽略了。我已经测试了.com和.com.au(有子域和没有子域),它们似乎都可以正常工作。