[英]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.