采用二级域名带来的问题及解决方法

     先向大家表示歉意,今天为了解决二级域名引起的一系列问题,频繁更新服务器上的程序,影响了大家访问博客园。每次更新dll后,ASP.NET运行时都需要花将2分钟左右进行编译,有时仅改几行代码,也要付出这样的代价。ASP.NET这个郁闷的问题让我在访问高峰期不敢更新程序,今天二级域名的问题比较重要所以只能忍痛更新。而ASP.NET运行时第一次编译时,访问博客园会出现“Runtime Error”错误,别人还以为网站出了问题,博客园觉得自己好冤枉,可是有什么办法呢?别人又不知道实际情况。看来要采用一种方法,在编译时,拒绝用户请求,并提示用户“系统正在编译,请稍候访问”,甚至可以播放一段音乐,这样多友好
     采用二级域名,第一个遇到的问题就是如何与以前的访问方式保持兼容,不仅可以通过新的二级域名进行访问,还可以通过原来的地址访问。因为搜索引擎、别人的地方的引用,都是原来的地址,所以兼容以前的访问方式是必要的,  这个问题可以通过分析URL, 判断当前请求是二级域名还是主域名,如果是二级域名就按二级域名的方式进行处理,否则按以前的方式进行处理。
     第二个问题是Cookie问题, 改程序前我对这个没经验,没想到这个问题,采用二级域名才发现,而处理这个问题也走了弯路,关于这个问题的处理,请看关于二级域名Cookie的问题及解决方法,幸亏NoFile的指点,才找到一个简单有效的解决方法。早知道有这个方法,昨天我也不用熬夜了。在这里再次感谢NoFile的帮助!同时感谢Zendy的热心帮助!(后来发现NoFile的方法在Firefox中无效,在Firefox中查看cookie, http://cnblogs.com下登录生成的cookie的域名是cnblogs.com,而不是.cnblogs.com,而Zendy的方法在Firefox中是有效的,生成的cookie的域名是.cnblogs.com, 再次感谢Zendy)
     第三个问题是二级域名中带有“_”符号引起的问题,这个问题是心仪发现的,不然我怎么也不会想到这个问题,  她以前的Blog地址是:http://xin_yi.cnblogs.com ,登录时验证码不能正确显示,我访问她的Blog, 发表评论或联系时,验证码都不能正确显示,实际上本就不应该显示验证码,因为我已经登录,估计心仪访问时也应该是已登录状态。显然是cookie的问题,一开始怎么也没想到是二级域名的问题,后来发现这个Blog与其他Blog的不同之处就是名称中带有“_”符号, 是不是这个引起的?去掉“_”一试,果然罪魁祸首就是它。怎么解决这个问题呢?费话!既然是“_”符号引起的,把Blog改名,不就行了。可是如果你仅这样想,那你就忽略了软件开发中非常重要的一点—兼容性。如果这样改了,所有其他地方以前对这个Blog的引用全部失效。而且博客园已经有不少这样的用户名,一个个改也很麻烦,但不改二级域名就无法使用。我采取了两全其美的方法,对于心仪的Blog已经改名,并告诉她了,那就让她用这个新Blog名,如果有旧地址的访问,在代码中进行重定向,采用新的地址进行访问。对于那些没有改名的Blog, 他们也想用二级域名访问,或者不知道这个问题,仍然采用二级域名访问,怎么办呢?重定向,在程序中自动将二级域名地址改为原来的地址,这个问题也就解决了。(注:如果你的Blog名中有“_”符号,想改名,请与我联系)。以后在注册时就要说明Blog名中不允许带有“_”。
      经过三天的努力,二级域名终于可以在博客园正常使用了。是不是很Cool!   。二级域名更加表现了你是博客园这个大家庭的一员,你的Blog影响着博客园的形象! 让我们一起继续努力建设好我们的网上家园吧!

原文地址:https://www.cnblogs.com/dudu/p/186762.html