我正在尝试将动态子域路由添加到项目中。我遇到的问题是在子域和顶级域之间生成链接。
首先我尝试用这种方式创建路线:
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']);
使用 route('home_new',['subdomain'=>'cats'])在顶级域名页面上时,会生成一个指向'cats.localhost / public'的链接
问题是,一旦我在 cats.localhost / public 并且我使用 route('home'),我仍然会被重定向到 cats.localhost /公共
所以我尝试将顶级域路由包装在一个自己的组中:
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错误。
如何在子域中生成会导致顶级域名的链接?这可以在没有例如依赖重定向的情况下完成吗?
答案 0 :(得分:0)
我通过修改 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>
这样修改我的路线:
Route::group(array('domain' => 'myapp.com'), function()
{
Route::get('/','MainController@getHome')->name('home');
});
Route::group(array('domain' => '{subdomain}.myapp.com'), function() {
Route::get('/','SubController@getHome' )->name('home_new');
});