目前我有一个到子域的路由组和到主站点的另一个路由组,如下所示:
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')作为子域,我需要将其解释为主站点。
答案 0 :(得分:3)
感谢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'));
答案 1 :(得分:2)
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行即可完成!
答案 2 :(得分:0)
1)您可以使用.htaccess重定向www到非www
2)检查http://laravel.com/docs/routing是否有正则表达式约束,因此在您添加的路径末尾 - > gt; where('subdomain','!www'); (未经测试)