Php 如何使用Laravel子域路由生成正确的链接?

Php 如何使用Laravel子域路由生成正确的链接?,php,laravel,routing,Php,Laravel,Routing,我正在尝试将动态子域路由添加到项目中。我遇到的问题是在子域和顶级域之间生成链接 首先,我尝试以这种方式创建路线: Route::get('/','MainController@getHome')->name('home'); Route::group(array('domain' => '{subdomain}.localhost/public'), function() { Route::get('/','MainController@getHomeNew' )->

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

首先,我尝试以这种方式创建路线:

Route::get('/','MainController@getHome')->name('home');

Route::group(array('domain' => '{subdomain}.localhost/public'), function() {
    Route::get('/','MainController@getHomeNew' )->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']); 
在使用路由的顶级域页面上时('home_new',['subdomain'=>'cats']);properely生成指向“cats.localhost/public”的链接

问题是,一旦我在cats.localhost/public并使用route(“home”),我仍然会被重定向到cats.localhost/public

因此,我尝试将顶级域路由包装在自己的组中:

Route::group(array('domain' => 'localhost/public'), function() {
    Route::get('/','MainController@getHome')->name('home');
});

Route::group(array('domain' => '{subdomain}.localhost/public'), function() {
    Route::get('/','MainController@getHomeNew' )->name('home_mew');
});
但是,无论我是转到顶级域根还是子域根,这都会导致404错误


如何在子域中生成指向顶级域的链接?例如,在不依赖重定向的情况下是否可以做到这一点?

我通过修改我的c:/windows/system32/drivers/etc/hosts文件并添加以下行解决了这个问题:

127.0.0.1 myapp.com subdomain.myapp.com anothersub.myapp.com
然后我更改了C:\xampp\apache\conf\extra\httpd vhosts配置文件并添加了:

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

我通过修改我的c:/windows/system32/drivers/etc/hosts文件并添加以下行解决了这个问题:

127.0.0.1 myapp.com subdomain.myapp.com anothersub.myapp.com
然后我更改了C:\xampp\apache\conf\extra\httpd vhosts配置文件并添加了:

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