繁体   English   中英

Laravel 4-路由到除www外的子域

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM