我目前正在开发一个多站点应用程序(多个(子)站点的一个代码库),我很乐意利用路由缓存,但目前我正在硬编码前缀而不是动态确定它。
当我尝试这样做时,我遇到了一个问题,我已经在下面说明了这个问题:
Route::group(['prefix' => '{subsite}', 'subdomain' => '{site}.domain.tld'], function () {
Route::get('blog', 'BlogController@index')->name('blog.index');
});
访问像http://sitename.domain.tld/subsitename/blog
这样的子网站时,这一切都运行良好,但在不访问像http://sitename.domain.tld/blog
这样的子网站时它不再起作用,因为它现在会认为前缀是“博客”。
有没有办法让'subsite'参数为空或跳过?
谢谢!
答案 0 :(得分:2)
据我所知,目前的路由系统中没有任何内容可以让您解决单个路由组的问题。
虽然这不能回答您的具体问题,但我可以想出两种可以实现预期行为的方法。
Route::group(['subdomain' => '{site}.domain.tld'], function () {
Route::get('blog', 'BlogController@index')->name('blog.index');
});
Route::group(['prefix' => '{subsite}', 'subdomain' => '{site}.domain.tld'], function () {
Route::get('blog', 'BlogController@index')->name('blog.index');
});
$prefixes = ['', 'subsiteone', 'subsitetwo'];
foreach($prefixes as $prefix) {
Route::group(['prefix' => $prefix, 'subdomain' => '{site}.domain.tld'], function () {
Route::get('blog', 'BlogController@index')->name('blog.index');
});
}