城市分站的功能如何实现?

类似于58同城可以根据客户端ip所在的城市引导到对应的城市站点,我的问题是要使用laravel实现这种需求,数据库和路由应该怎么配置?因为不同城市站点的数据不一样,数据做切换呢?新手虚心求指导!

阅读 7.8k
3 个回答

我刚看了下58同城.

数据库表用的应该是一个, 只不过里面所有和位置相关的数据都会带着位置信息.

用户第一次访问58.com的时候, 根据ip数据库判断一下, 然后跳转到相应的城市域名下.
然后把cookie种上.

如果是第二次+访问58.com, 根据cookie直接跳转.

Cookie:ipcity=bj|%u5317%u4EAC|0; city=tianshui; 58home=tianshui; commontopbar_city=8601|%u5929%u6C34|tianshui

laravel的路由, 可以这样来

Route::get('/xxx', ['domain' => '{city}.58.com'])

把城市当参数传进去, 然后该取啥数据取啥数据, 模板看着都是一套.
即使模板不一样也没关系, 可以在 按城市数据来取模板.

子域名配置,数据库按地区分表,具体你那个框架没用过就不知道怎么详细配置了

根据ip定位城市,数据库建一个站点管理的表,站点关联城市,在所有数据的地方增加字段site_id(站点id),你定位到城市的时候,也就获取了site_id了,site_id存cookie,所有数据都可以获取到了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题