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

推荐订阅源

P
Palo Alto Networks Blog
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
B
Blog
MyScale Blog
MyScale Blog
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Hugging Face - Blog
Hugging Face - Blog
S
Schneier on Security
Project Zero
Project Zero
T
Tenable Blog
T
Tor Project blog
U
Unit 42
G
GRAHAM CLULEY
N
News and Events Feed by Topic
P
Proofpoint News Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
C
Cybersecurity and Infrastructure Security Agency CISA
腾讯CDC
博客园 - 叶小钗
M
MIT News - Artificial intelligence
Vercel News
Vercel News
T
Threat Research - Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
The Exploit Database - CXSecurity.com
P
Privacy & Cybersecurity Law Blog
I
Intezer
博客园 - 聂微东
SecWiki News
SecWiki News
Scott Helme
Scott Helme
C
Cyber Attacks, Cyber Crime and Cyber Security
IT之家
IT之家
量子位
S
Secure Thoughts
The Cloudflare Blog
博客园 - 司徒正美
Know Your Adversary
Know Your Adversary
Hacker News: Ask HN
Hacker News: Ask HN
V
Vulnerabilities – Threatpost
Simon Willison's Weblog
Simon Willison's Weblog
N
News | PayPal Newsroom
C
Check Point Blog
Spread Privacy
Spread Privacy
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cyberwarzone
Cyberwarzone

博客园 - pysharp

openstack horizon api step by step understanding horizon's template path what can PsTools\psexec do! - pysharp What's New in Python3.0 - pysharp [转]利用adsutil.vbs脚本创建自定义web站点 我的2008. sql基础篇,不断更新中...... TypeConvert Demo javascript 调试器v1.0.0.0 Dundas Chart Demo For New User - pysharp c#面向对象中的继承初步认识 .net 集合类初步认识 c# 目录操作类 c# 文件操作类 - pysharp - 博客园 c# 动态编译方法 c# 读取Excel到datable asp.net 下载和在线预览Excel的方法 排序算法 c#实现 简单使用nHibernate,新手练习用。
关于urlrewrite的小DEMO - pysharp - 博客园
pysharp · 2008-03-21 · via 博客园 - pysharp

代码

        public string Path
        {
            get { return Server.MapPath("~/rewrite.config"); }
        }

        protected void Application_BeginRequest(object sender,EventArgs e)
        {
            string originalurl, newurl;
            originalurl = Request.Url.PathAndQuery;
            RewriteConfig config = new RewriteConfig(this.Path);
            newurl=config.MappingUrl(originalurl);
            HttpContext.Current.RewritePath(newurl);                        
        }
RewriteConfig 类

namespace UrlRewrite
{
    /// <summary>
    /// 默认页的枚举
    /// </summary>
    public enum Mapped
    {
        defaultPage = "~/Default.aspx"
    }

    public class RewriteConfig
    {
        /// <summary>
        /// 初始化一个xmldoc对象
        /// </summary>
        XmlDocument XmlDoc=new XmlDocument();

        /// <summary>
        /// 文件名称
        /// </summary>
        string filePath;
        public string FilePath
        {
            get { return filePath; }
            set { filePath = value; }
        }

        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="filePath">文件地址</param>
        public RewriteConfig(string filePath)
        {
            this.FilePath = filePath;
        }
       
        public RewriteConfig() { }        

        /// <summary>
        /// 将文件加载到xmldoc中
        /// </summary>
        public void LoadConfig()
        {
            this.XmlDoc.Load(this.FilePath); 
        }

        /// <summary>
        /// 匹配规则,得到真实的请求url
        /// </summary>
        /// <param name="originalUrl"></param>
        /// <returns></returns>
        public string MappingUrl(string originalUrl /*来源url*/)
        {
            this.LoadConfig();
            XmlNodeList rulesList = this.AllMappingRegulation();
            if (rulesList == null)
            {
                return Mapped.defaultPage ;
            }
            foreach (XmlNode regulars in rulesList)
            {
                XmlNodeList regular = regulars.ChildNodes;
                Regex reg = new Regex(regular[0].InnerText);

                if (reg.IsMatch(originalUrl))  //如果来源页与规则匹配
                {
                    return Regex.Matches(originalUrl,regular[0].InnerText)[0].Result(regular[1].InnerText); //关键的替换工作
                }
            }
            return Mapped.defaultPage ;
        }

        /// <summary>
        /// 得到所有的规则
        /// </summary>
        /// <returns></returns>
        public XmlNodeList AllMappingRegulation()
        {
            XmlNodeList list = this.XmlDoc.SelectSingleNode("urlrewrites").ChildNodes;
           
            if (list != null)
            {
                return list;
            }
            else
            {
                return null;
            }
        }
    }
}
映射规则
<?xml version="1.0" encoding="utf-8"?>
<urlrewrites>
 <rule>
  <source>/default.aspx</source>
  <target>~/default.aspx</target>
 </rule>
 <rule>
  <source>/urlrewriter/show(.*)\.asp</source>
  <target>show.aspx?$1</target>
 </rule>
 <rule>
  <source>/urlrewriter/(.*)show\.html</source>
  <target>show.aspx?id=$1&amp;cat=2</target>
 </rule>
 <rule>
  <source>/urlrewriter/s/h/o/w/(.*)\.html</source>
  <target>/urlrewriter/show.aspx?id=$1</target>
 </rule>
</urlrewrites>

不知道读取。config文件还有没有其他的好方法阿。
希望大家可以提意见大家多交流,共同进步啊。