Laravel 一个项目上多个域名的路由问题
需求
- www、m 和 zh 的 / 访问的是网站首页
- 除去 www、m 和 zh 这三个子域名,其他所有子域名的 / 都是访问的城市专题页(跟网站首页不一样),专题页是根据自域名去数据库中查询数据并展示,没有查到的返回 404 页面。
目前解决方案
Route::group(['domain' => '{name}.' . config('app.tld'), 'namespace' => 'Web'], function () {
$hosts = [
'www.xxx.com',
'zh.xxx.com',
'm.xxx.com'
];
if (array_key_exists('HTTP_HOST', $_SERVER) && in_array($_SERVER['HTTP_HOST'], $hosts)) {
return null;
}
Route::get('/', 'SeoController@index');
});
Route::get('/', 'IndexController@index');
问题
采用上面的方法可以在路由不生成缓存的情况下正常路由,但是缓存后,所有的都会路由到第一个路由组里去,然后根据子域名查数据库,www、m 和 zh 这种就会导致页面 404;
请教有没有更优雅的方法来实现这样的需求?
推荐文章: