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

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
The Cloudflare Blog
Blog — PlanetScale
Blog — PlanetScale
F
Full Disclosure
G
Google Developers Blog
罗磊的独立博客
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
A
About on SuperTechFans
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
GbyAI
GbyAI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
The Register - Security
The Register - Security
U
Unit 42
D
Docker
Martin Fowler
Martin Fowler
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
阮一峰的网络日志
阮一峰的网络日志
C
Cybersecurity and Infrastructure Security Agency CISA
博客园_首页
Google DeepMind News
Google DeepMind News

博客园 - leohuang

C#日期函数使用大全 replace(/\s/g,"")中的/g是什么意思? 及replace函数的用法 - leohuang - 博客园 Timestamp (rowversion) Data Type 为什么就没有中文版 数据库设计和优化 的书呢 asp.net 下发布水晶报表调试经验 C#操作Access的一些小结 Photoshop制作Favicon.ico图标(转载) 取消ie6自动打开excel - leohuang - 博客园 oracle多表查询分页 库存出入库算法 Page_Load为什么会执行两次 - leohuang - 博客园 asp网站(asp+access)怎么防注入呢 Windows Service开发日志(转载csdn) IFrame 下返回登录页 访问母板页的updatepanel 及 设置 密码框字符 - leohuang 垃圾的江苏电信 amd 2500 boot设置 总算下到 Expert C# 2008 Business Objects 了 读《Expert C# 2005 Business Object》 - leohuang
巧用httpModules实现网站域名更换
leohuang · 2010-01-07 · via 博客园 - leohuang

朋友的网站,原来的域名是 sitea.com,现在要换成siteb.com。当然sitea.com还未到期,要过度一段时间。网上看了这篇文章。

seo网站如何实现301跳转?http://smt.fortuneage.com/uemarketer/18655-155226.aspx

是这么个意思,如何在asp.net实现。 以前实现过泛域名,用的是URLRewriter,前几天看NHibernate的一些东西,也有朋友通过httpModules实现每个请求创建一个session连接,请求结束后释放session。

是啊,微软就提供了这么一个类似管道链的东西,一个一个Modules挨着处理。当然,也可以通过这种方法,判断只有认证过的用户才能下载对应扩展名的文件,也就是在交给最终成现之前先截获进行处理。

当然你可以自己新建一个类,继承于public class GoXueHttpModule : IHttpModule

public class GoXueHttpModule : IHttpModule
    {

        /// <summary>
        /// 构造函数
        /// </summary>
        public GoXueHttpModule()
        {

        }

        #region IHttpModule 成员
        /// <summary>
        /// 释放
        /// </summary>
        public void Dispose()
        {

        }

        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="context">http应用程序</param>
        public void Init(HttpApplication context)
        {
            context.BeginRequest += new EventHandler(Context_BeginRequest);
            //关闭页面的时候
            //context.EndRequest += new EventHandler(Context_EndRequest);
        }
        #endregion

        /// <summary>
        /// 开始请求
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Context_BeginRequest(object sender, EventArgs e)
        {
            string url = HttpContext.Current.Request.Url.ToString();
            if (url.Contains("sitea.com"))
            {
                string url2 = url.Replace("sitea.com", "siteb.com");
                HttpContext.Current.Response.Status = "301 Moved Permanently";
                HttpContext.Current.Response.AddHeader("Location", url2);
                HttpContext.Current.Response.End();
            }
            else
            {
                HttpContext.Current.Response.Redirect(url);
            }

        }

        /// <summary>
        /// 结束请求
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Context_EndRequest(object sender, EventArgs e)
        {
          }

    }

当然,上面的红色的,可以直接写在URLRewriter.ModuleRewriter,这样既实现了二级域名,又实现了域名的变更。

同时,旧的访问方式可以不变,通过旧的搜索引擎地址过来的,也会用新的域名的网址来显示。