如何配置Laravel路由使其指向别名域名而非主域名?
Laravel路由生成链接指向别名域名的配置方法
问题描述
我拥有主域名为site-testing.com的网站,已配置别名域名site-testing.info。现有路由配置如下:
Route::group(['prefix' => 'posts', 'as' => 'posts.site-testing.'], function () { Route::get('/{slug}', [PostController::class, 'show'])->name('show'); });
在Blade模板中使用命名路由生成链接:
<a href="{{route('posts.site-testing.show', $post->slug)}}">Read more</a>
生成的链接始终指向主域名http://site-testing.com/posts/slug,而非别名域名http://site-testing.info/posts/slug。
解决方案
方法1:在路由组中指定域名
直接在路由组配置里添加domain参数,强制该路由组下的所有路由使用别名域名:
Route::group(['prefix' => 'posts', 'as' => 'posts.site-testing.', 'domain' => 'site-testing.info'], function () { Route::get('/{slug}', [PostController::class, 'show'])->name('show'); });
配置完成后,调用命名路由时会自动生成site-testing.info域名下的链接。
方法2:生成链接时手动指定域名
如果需要灵活切换域名,可在调用route()函数时传入domain参数:
<a href="{{route('posts.site-testing.show', ['slug' => $post->slug, 'domain' => 'site-testing.info'])}}">Read more</a>
原理说明
Laravel默认会优先使用当前请求的域名,若没有请求上下文则使用config/app.php中APP_URL配置的域名。要让特定路由指向别名域名,必须显式指定domain属性,覆盖默认的域名检测逻辑。
内容的提问来源于stack exchange,提问作者dev_2108
相关产品推荐
相关产品推荐

