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

推荐订阅源

WordPress大学
WordPress大学
Engineering at Meta
Engineering at Meta
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Martin Fowler
Martin Fowler
雷峰网
雷峰网
Recent Announcements
Recent Announcements
博客园 - 叶小钗
F
Full Disclosure
C
Check Point Blog
A
About on SuperTechFans
L
LangChain Blog
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
博客园 - 司徒正美
C
Cybersecurity and Infrastructure Security Agency CISA
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cisco Talos Blog
Cisco Talos Blog
Hugging Face - Blog
Hugging Face - Blog
Recorded Future
Recorded Future
MongoDB | Blog
MongoDB | Blog
Project Zero
Project Zero
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Know Your Adversary
Know Your Adversary
D
Docker
U
Unit 42
酷 壳 – CoolShell
酷 壳 – CoolShell
T
The Exploit Database - CXSecurity.com
L
Lohrmann on Cybersecurity
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Latest news
Latest news
V
Visual Studio Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 最新话题
Google DeepMind News
Google DeepMind News
小众软件
小众软件
NISL@THU
NISL@THU
GbyAI
GbyAI
H
Heimdal Security Blog
Jina AI
Jina AI
I
InfoQ
PCI Perspectives
PCI Perspectives
P
Privacy International News Feed
P
Proofpoint News Feed
N
News and Events Feed by Topic
C
CERT Recently Published Vulnerability Notes
aimingoo的专栏
aimingoo的专栏
SecWiki News
SecWiki News
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志

博客园 - 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》
巧用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,这样既实现了二级域名,又实现了域名的变更。

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