Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉维通配符路由_Php_Laravel_Routing - Fatal编程技术网

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(有子域和没有子域),它们似乎都可以正常工作。