这是我的路线:
Route::group(array('domain'=>'{subdomain}.example.com'), function()
{
Route::group(array('before'=>array('authenticate')), function()
{
Route::resource('post', 'PostController');
Route::resource('comments', 'CommentsController');
Route::resource('forum', 'ForumController');
Route::resource('users', 'UsersController');
});
});
默认情况下,我的所有资源控制器现在都将子域作为第一个参数,我找不到改变它的方法。
如果可能的话,我想完全忽略子域名。
用例示例:
admin.example.com/forum/1?domain=foo
foo.example.com/forum/1
bar.example.com/forum/2
此网站托管2个论坛,但只有1个管理员管理所有这些论坛。要让管理员访问论坛foo,管理员还必须提供domain = foo来查看它。
答案 0 :(得分:6)
如果你不想根据子域路由,那么你应该只过滤子域进行访问。
Route::filter('subdomain', function($route, $request)
{
$host = $request->getHost();
$parts = explode('.', $host);
$subdomain = $parts[0];
if ($subdomain == 'something')
{
// Allow or deny
}
});
Route::group(array('before'=>array('subdomain|authenticate')), function()
{
Route::resource('post', 'PostController');
Route::resource('comments', 'CommentsController');
Route::resource('forum', 'ForumController');
Route::resource('users', 'UsersController');
});