惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
月光博客
月光博客
人人都是产品经理
人人都是产品经理
Google DeepMind News
Google DeepMind News
M
MIT News - Artificial intelligence
Vercel News
Vercel News
MyScale Blog
MyScale Blog
爱范儿
爱范儿
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
H
Help Net Security
Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
L
LangChain Blog
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
宝玉的分享
宝玉的分享
博客园 - 聂微东
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
博客园 - 叶小钗
D
Docker

博客园 - 随风逝去(叶进)

MySQL分表(Partition)学习研究报告 用WPF+MongoDB开发房产信息收集器(4)——房产信息采集器总体介绍附程序下载 用WPF+MongoDB开发房产信息收集器(3)——MongoDB入门 用WPF+MongoDB开发房产信息收集器(2)——后台线程 用WPF+MongoDB开发房产信息收集器(1) 解决FireFox不能Debug Silverlight程序的问题 - 随风逝去(叶进) - 博客园 终于可以继续往下了! 回首2008 【更新 2008.10.16】触发C#Button的双击事件 触发C#Button的双击事件 到底要不要去面试? 【C#食谱】【面食】菜单7:用默认值初始化泛型变量 类和对象 【C#食谱】【杭帮菜】菜单2:写一个TCP客户端 C#Winform下用正则表达式限制TextBox只能输入数字 【C#食谱】【杭帮菜】菜单1:写一个TCP服务端 【C#食谱】【川菜】菜单1:列出被引用的程序集 实现需求工程的成功方法 实现需求工程的成功方法——难度:高;影响:低
另类的二级域名实现方法
随风逝去(叶进) · 2008-12-01 · via 博客园 - 随风逝去(叶进)

文前声明:小生对“二级域名”、“分站”这类概念不是很清楚,本文若是对各位多少有点用,就留个笑脸;若是不才,各位认为完全时垃圾,也敬请拍砖。如果,阁下有更好、更简便的方法,也可以提出来,以供大家(特别是我)学习学习......

这几天,外卖汇网站开始需要实施其他城市的扩展(目前就杭州站有,正在准备上海站的开通),可是遇到一个问题(不说大家也知道了),就是如何通过二级域名指向不同的城市站点。目前外卖汇的域名是waimaihui.com,希望将http://hz.waimaihui.com/指向杭州站,而将http://sh.waimaihui.com/指向上海站。这个自然可以通过配置DNS来简单的实现,但是考虑到后期其他城市的扩展,如果都是通过配置DNS来实现的话,未免可扩展性也太差了。所以,考虑通过程序实现。

考虑到,城市之间的数据基本没有交互的地方,故每个城市都采用一个独立的数据库(当然,这不是一个好的解决方法),这就使得其实不同城市之间只有数据库不同罢了,其他都是一样的,除了网页的标题这类的页面内容,而且这些也只是换个城市名称罢了。

所以,我就想到了一个另类的方法:通过判断用户请求的hostName来判断用户访问的是哪个城市的站点,不同的城市使用不同的数据库连接字符串,这些数据库连接字符串保持为web.config中的key值。 

HostName = HttpContext.Current.Request.Url.Host.ToString();   

UserHost = HostName.Split(new Char[] { '.' }); 

通过判断UserHost[0]的值,来决定用户访问的城市站点。比如说,用户请求的页面时http://hz.waimaihui.com/那么UserHost[0]="hz"

这里也遇到了另一个问题:何时设置这个字符串,用户的访问你是无法确定的,也许用户前一秒访问的时http://hz.waimaihui.com/,可是后一秒也许就是http://sh.waimaihui.com/,如何使得连接字符串做到正确的切换呢?

我选择引入Global.asax,这Application_BeginRequest事件中判断用户请求的页面,然后设置连接字符串为不同的key值,这个事件会在用户每次请求页面时被触发,这样就可以始终保持连接字符串时正确的了。