2016-09-15 48 views
1

我正在尝试将动态子域路由添加到项目中。我遇到的问题是在子域和顶级域之间生成链接。如何使用Laravel子域路由生成正确的链接?

首先我试图创建路线是这样的:

Route::get('/','[email protected]')->name('home'); 

Route::group(array('domain' => '{subdomain}.localhost/public'), function() { 
    Route::get('/','[email protected]')->name('home_mew'); 
}); 

我的假设是,这发生在以下方式中的链接将导致我的正确路线:

//I assumed this would always generate a link to the root of 'localhost/public/': 
route('home'); 

//And that this would always take me to a sub domain root e.g. 'cats.localhost/public/': 
route('home_new', ['subdomain' => 'cats']); 

当在使用route('home_new',['subdomain'=>'cats'])的顶级域名页面; properely生成一个链接到'cats.localhost/public'。

的问题是,一旦我在cats.localhost /公共我用路线(“家”)我还是重定向到cats.localhost /公共

所以,我想包装顶级域名路线一组其自身的:

Route::group(array('domain' => 'localhost/public'), function() { 
    Route::get('/','[email protected]')->name('home'); 
}); 

Route::group(array('domain' => '{subdomain}.localhost/public'), function() { 
    Route::get('/','[email protected]')->name('home_mew'); 
}); 

然而,这导致404错误,无论是否我去顶域根或子域的根。

如何生成一个子域中的链接,而不是导致顶级域?这可以在没有例如依靠重定向的情况下完成吗?

回答

0

嗯,我修改我的Ç解决了这个问题:/窗/ SYSTEM32 /司机/ etc/hosts中文件,并加入这一行:

127.0.0.1 myapp.com subdomain.myapp.com anothersub.myapp.com 

然后,我改变C:\ XAMPP的\ apache的\的conf \额外\的httpd的虚拟主机配置文件,并补充说:

<VirtualHost *:80> 
    ServerName www.myapp.com 
    ServerAlias myapp.com 
    DocumentRoot C:\xampp\htdocs\myapp\_src\public 
</VirtualHost> 

正是如此修改我的路线:

Route::group(array('domain' => 'myapp.com'), function() 
{ 
    Route::get('/','[email protected]')->name('home'); 
}); 

Route::group(array('domain' => '{subdomain}.myapp.com'), function() { 
    Route::get('/','[email protected]')->name('home_new'); 
});