[英]Laravel 4 - Route to subdomain except www
目前,我有一個到子域的路由組,另一個到主站點的路由組,如下所示:
Route::group(array('domain' => '{subdomain}.mysite.dev'), function() {
// Subdomain routes
Route::get('/', array('as' => 'home', 'uses' => 'SubdomainController@showHome'));
});
// Main
Route::get('/', array('as' => 'home', 'uses' => 'PublicController@showHome'));
到目前為止,對於“ mysite.dev”和“ stuff.mysite.dev”或任何其他子域來說,它都可以正常工作。 問題在於它假定“ www”(如“ www.mysite.dev”中的)作為子域,因此我需要將其解釋為主站點。
感謝itachi的回應,我提出了以下建議:
Route::pattern('subdomain', '^((?!www).)*$');
將此行添加到routes.php的頂部,使“子域”匹配除“ www”以外的任何其他內容。
最終形式:
Route::pattern('subdomain', '^((?!www).)*$');
Route::group(array('domain' => '{subdomain}.mysite.dev'), function() {
// Subdomain routes
Route::get('/', array('as' => 'home', 'uses' => 'SubdomainController@showHome'));
});
// Main site routes (works for mysite.dev and www.mysite.dev)
Route::get('/', array('as' => 'home', 'uses' => 'PublicController@showHome'));
Route::pattern('subdomain','dev|test|mobile'); <---- add your subdomains
Route::group(array('domain' => '{subdomain}.mysite.dev'), function() {
// Subdomain routes
Route::get('/', array('as' => 'home', 'uses' => 'SubdomainController@showHome'));
});
// Main
Route::get('/', array('as' => 'home', 'uses' => 'PublicController@showHome'));
只需添加第一行,您就完成了!
1)您可以使用.htaccess將www重定向到非www
2)檢查http://laravel.com/docs/routing是否存在正則表達式約束,因此在路由的末尾添加-> where('subdomain','!www'); (未經測試)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.