伪静态

  public class UrlRewriter : IHttpHandler
    {


        public void ProcessRequest(HttpContext context)
        {
            string url = context.Request.RawUrl;//获取用户请求的URL地址信息
            string path = context.Server.MapPath(@"~/UrlRewriter.xml");
            List<XmlMode> list = GetXml(path);
            foreach (XmlMode item in list)
            {
                //Regex Reg = new Regex(item.LookFor, RegexOptions.IgnoreCase);//建立正则表达式 
                //Match m = Reg.Match(url, url.LastIndexOf("/"));//用正则表达式进行URL字符串
                string s = item.LookFor;
                s = s.Remove(0, 1);
                if (url==s)//匹配成功
                {
                    string RealPath = item.SendTo;//重定向真ra实的地址信息
                    context.Server.Execute(RealPath);
                    context.Response.End();
                }
           
            }


         
        }


        public bool IsReusable
        {
            get { return false; }
        }


        #region 获取xml伪静态设置的数据   List<XmlMode> GetXml(string path)
        /// <summary>
        /// 获取xml伪静态设置的数据
        /// </summary>
        /// <param name="path">xml地址</param>
        /// <returns>返回相应集合</returns>
        List<XmlMode> GetXml(string path)
        {
            List<XmlMode> list = new List<XmlMode>();
            XmlMode xmlModel = null;
            XmlDocument doc = new XmlDocument();
            doc.Load(path);    //加载Xml文件  
            XmlElement rootElem = doc.DocumentElement;   //获取根节点  
            XmlNodeList personNodes = rootElem.GetElementsByTagName("RewriterRule"); //获取RewriterRule子节点集合  
            foreach (XmlNode node in personNodes)
            {
                string strLookFor = node.SelectSingleNode("LookFor").InnerText;
                string strSendTo = node.SelectSingleNode("SendTo").InnerText;
                string strSymbol = node.SelectSingleNode("Symbol").InnerText;
                xmlModel = new XmlMode()
                {
                    LookFor = strLookFor,
                    SendTo = strSendTo,
                    Symbol=strSymbol
                };


                list.Add(xmlModel);
            }
            return list;
        } 
        #endregion
    }
    class XmlMode
    {
        public string LookFor { get; set; }
        public string SendTo { get; set; }
        public string Symbol { get; set; }


    }




<?xml version="1.0" encoding="utf-8" ?>
<RewriterConfig>
  <RewriterRule>
    <LookFor>~/index.html</LookFor>
    <SendTo>~/index.aspx</SendTo>
    <Symbol>-</Symbol>
  </RewriterRule>


  <RewriterRule>
    <LookFor>~/about.html</LookFor>
    <SendTo>~/about.aspx</SendTo>
    <Symbol>-</Symbol>
  </RewriterRule>
  
</RewriterConfig>



<httpHandlers>
      <!--使用自定义UrlRewriter类-->
      <add verb="*" path="*.html" type="Web.UrlRewriter"/>
    </httpHandlers>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值