我有3個域其中,我的本地服務器上,採取以下格式:Laravel使用通配符爲多個域設置路由組,如何處理域後綴?
- mydomainfirst.local
- mydomainsecond.local
- mydomainthird.local
在我的routes.php文件文件,我有以下幾種:
Route::group(array('domain' => '{domain}.{suffix}'), function() {
Route::get('/', '[email protected]');
});
這個想法是採取$domain
變量在我的控制器中,並從中提取第一/第二/第三部分,它工作正常。但是,現在我的網站已聯機,此路由文件不再有效並引發Http未發現的異常。過了一段時間,我發現問題是這些域現在採用格式mydomainfirst.co.uk
。因爲現在有2個部分的域名後綴,似乎我需要這樣做:
Route::group(array('domain' => '{domain}.{a}.{b}'), function() {
Route::get('/', '[email protected]');
});
爲了讓它工作。這是愚蠢的。我怎麼能告訴它只接受任何後綴?是否有我可以使用的「任何」通配符?
我試過一些東西,如this answer,但它不適用於路由組。
編輯:看來Enhanced Router方案將至少使我增加一個where
子句的路由組,但它解決了如何設置一個通配符將匹配段數量不確定的問題?我需要這樣的東西:
{domain}.{anything}
這將同時匹配:
mydomainfirst。 本地AND mydomainfirst。 co。 英國
?
看起來像[此包](https://github.com/jasonlewis/enhanced-router)可以幫助您解決問題 – lukasgeiter
@lukasgeiter謝謝,請參閱編輯。 – Inigo
如果' - > where('anything','。*')'有效嗎? – lukasgeiter