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>