我使用laravel 4.2应用程序的子域路由。这是我的路线文件:
Route::group(array('domain' => '{keyword}.example.com'), function() {
Route::get('/', 'FrontendHomeController@index');
});
Route::get('/', ['uses' => 'FrontendHomeController@index', 'as' => 'home']);
Route::get('hotels', ['uses' => 'FrontendHotelController@index', 'as' => 'hotelsearch']);
Route::get('hotel/{slug}/{id}', ['uses' => 'FrontendHotelController@detail', 'as' => 'hoteldetail']);
[...]
所以我有几个页面使用子域名,如keyword.example.com
,another.example.com
。但大多数其他网页都是常规的example.com/page
网址。这到目前为止工作正常。我使用Laravel网址/路线助手生成导航链接,例如{{ url('hotels') }}
或{{ route('hotelsearch') }}
。
现在,在子域名页面上,生成的URL包含子域名。例如。在keyword.example.com上,{{ url('hotels') }}
生成keyword.example.com/hotels
而非example.com/hotels
。
我想删除使用url()
或route()
帮助程序生成的所有链接的子域名,这些帮助程序应始终指向根域。
是否有参数或是否必须以某种方式覆盖辅助方法?
答案 0 :(得分:0)
模板中的url
函数包含Illuminate\Routing\UrlGenerator::to
,它不允许您指定域,但您可以使用相同的Route::group
technique来封装所有主域路由。 (它不需要通配符,如文档中所示。)
Route::group(array('domain' => 'www.example.com'), function() {
Route::get('hotels', ['uses' => 'FrontendHotelController@index', 'as' => 'hotelsearch']);
// ...
});