以主站定格的方式创建城市分站,这样的功能实现的原理是什么?
根据ip定位城市,数据库建一个站点管理的表,站点关联城市,在所有数据的地方增加字段site_id(站点id),你定位到城市的时候,也就获取了site_id了,site_id存cookie,所有数据都可以获取到了
数据库表用的应该是一个, 只不过里面所有和位置相关的数据都会带着位置信息. (推荐学习:PHP视频教程)
用户第一次访问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'])
把城市当参数传进去, 然后该取啥数据取啥数据, 模板看着都是一套.
即使模板不一样也没关系, 可以在 按城市数据来取模板.
以上是php城市分站是什么原理的详细内容。更多信息请关注PHP中文网其他相关文章!