如何建立一个适合不同城市的子网站?
与http://philly.example.com
,http://maine.example.com
,http://sandiego.example.com
一样?大多数网站都是相同的,如布局,措辞,数据库,界面。不同之处将是一些特定于城市的图形,例如在徽标中添加城市名称(例如,Groupon Nyc,Groupon Chicago),以搜索数据库的形式更改隐藏变量(城市),因此结果将偏向于城市。
问题1 。用户访问网站。脚本根据用户的IP地址确定城市,然后重定向到正确的子域。
我可以执行检测脚本,但是如何向不同的城市显示几乎相同的网站?我想你不会为50个不同的城市复制50次网站,处理每个网站的变化都会疯狂!
问题2:假设您每次都没有为新城市复制网站并稍微更改图片和文字,那么您如何进行特定城市的更改呢?
对于页面上的每个特定于城市的项目,您是否有50个case-ifs
或if-elseif-else
的列表?我预见到这样做会弄乱整个页面的代码!
答案 0 :(得分:2)
使用通配符DNS /网络设置相当简单。
*.example.com
映射到服务器的IP地址<VirtualHost IP:80>ServerAlias *.example.com example.com
$_SERVER['HTTP_HOST']
来确定用户正在访问哪个子站点,并从那里定制您的内容。答案 1 :(得分:1)
这实际上取决于每个城市有多少信息不同。看起来你有三个选择。
SANDIEGO -> logo -> "img/sandiego.gif"
)当人们加载页面时,你会检查它们的位置 - 你可能想要做“你确定”的那种对话框,它会询问它们实际上是你所检测到的城市。
如果选择选项1,则只需将当前使用的数据库更改为特定于城市的数据库。对于选项2,您只需设置全局cityId,因此所有查询都将针对该特定城市进行。
答案 2 :(得分:0)
Q1)你有一个数据库中的城市,然后是你想要展示的任何城市,你可以通过cityid进行。
Q2)再次,由cityid显示数据。
答案 3 :(得分:0)
为此,您可以创建两个表。
表1:
id INT Primary key
city_name VARCHAR 255
表2:
id INT Primary key
city_id INT Foreign key
page_id INT
page_content TEXT
有很多不同的方法可以做到这一点。这取决于每个城市是否会有不同的内容,或只是少数几个。否则,它将更具技术性,因为您需要确定哪些内容适用于哪个城市。这需要调整你的sql表。