您的位置:首页 > 运维架构 > 网站架构

一种基于自定义代码的asp.net网站首页根据IP自动跳转指定页面的方法!

2013-07-01 10:58 1146 查看
对于大中型网站,为了增强用户体验,往往需要根据不同城市站点的用户推送或展现相应个性化的内容,如对于一些大型门户网站的新闻会有城市站点的功能,如果没有设置相应的城市站点,默认就是根据用户访问的IP地址的所在城市自动设置。本文主要通过自定义扩展IHttpModule接口,考虑到性能IP数据库主要采用QQwry纯真IP数据库(但此数据库并非是官方的,我之前与ip138网站对比过,IP地址信息的准确性大概在90%左右),主要实现根据IP地址或地址段或IP所在城市进行自动跳转到指定页面的功能(支持Nginx作为前端反向代理服务器),该WebsiteSkip组件核心代码如下:

?
在部署方面,非常简单主要利用IHttpModule接口并在Web.config中的HttpModule节点添加此组件的配置,访问限制或允许参数可以在NetOpen_SystemWebsiteSkip.cfg.xml进行设置,以下为一个简单的配置示例:

<?xml version="1.0" encoding="utf-8" ?>
<NetOpen_System>
<WebsiteSkip>
<SkipedUrl>
<add ipcity="温州" urlfrom="http://examplesite.com/Default.aspx,http://examplesite.com/,http://examplesite.cn/,http://www.examplesite.cn" urlto="http://wz.mainwebsite.pcom/index.aspx" outkeyword="math"/>
<add ipcity="镇江" urlfrom="http://examplesite.com/Default.aspx,http://examplesite.com/,http://examplesite.cn/,http://www.examplesite.cn" urlto="http://jszj.mainwebsite.com/index.aspx" outkeyword="math"/>
</SkipedUrl>
<SkipedIP>
<add ip1="220.186.0.0" ip2="220.186.255.255" urlfrom="http://examplesite.com/Default.aspx,http://examplesite.com/,http://examplesite.cn/,http://www.examplesite.cn" urlto="http://wz.mainwebsite.com/index.aspx" outkeyword="math"/>
</SkipedIP>
<ExcludeUserAgent>
<add keyword="Baiduspider">
<add keyword="Sosospider">
<add keyword="Sogou web spider">
<add keyword="Sogou inst spider">
<add keyword="Sogou-Test-Spider">
<add keyword="Sogou Orion spider">
<add keyword="Gigabot">
<add keyword="0JJJSpider">
<add keyword="Sogou Pic Spider">
<add keyword="Googlebot">
<add keyword="Yeti/1.0">
</ExcludeUserAgent>
</WebsiteSkip>
</WebsiteSkip>
</NetOpen_System>


该组件源代码下载地址:https://websiteskip.codeplex.com/,欢迎访问下载!虽然该组件实现并不复杂,原理也很简单,但较为实用,后续将增加根据IP138的网站进行实时查询,这样IP地址信息将更为精确,但对性能可能会有一些影响
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐