由于伪静态的配置太多,如果放在web.cofig里面可阅读性不强,而且频繁修改webconfig容易出错。
1,修改RewriterConfigSerializerSectionHandler类
使用系统;
使用System.Configuration;
使用的System.Xml;
使用System.Xml.Serialization;
使用System.Xml.XPath;
命名空间Utility.URLRewriter
{
/// <摘要>
///反序列化在Web.config中标记成的一个实例<见CREF =“RewriterConfiguration”/>类。
/// </摘要>
公共类RewriterConfigSerializerSectionHandler:IConfigurationSectionHandler
{
/// <摘要>
///创建<见CREF =“RewriterConfiguration”/>类的一个实例。
/// </摘要>
/// <注>使用XML序列化在Web.config文件中的XML序列化到
/// <见CREF =“RewriterConfiguration”/>实例</备注>
/// <返回>的<见CREF =“RewriterConfiguration”/>类的实例。</回报>
公共对象创建(父对象,对象configContext,System.Xml.XmlNode部分)
{
串SOURCEPATH = section.Attributes [“ConfigSource”]值。
//创建XmlSerializer的的基础上,RewriterConfiguration类型的实例...
XmlSerializer的SER =新的XmlSerializer(typeof运算(RewriterConfiguration));
的XmlDocument xmlDoc中=新的XmlDocument();
xmlDoc.Load(System.Web.HttpContext.Current.Server.MapPath(SOURCEPATH));
//从Web.config的XML返回反序列化对象
返回ser.Deserialize(新XmlNodeReader对象(xmlDoc中));
创建XmlSerializer的的基础上,RewriterConfiguration类型的实例...
// XmlSerializer的SER =新的XmlSerializer(typeof运算(RewriterConfiguration));
从Web.config的XML返回反序列化对象
//返回ser.Deserialize(新XmlNodeReader对象(部分));
}
}
}
2,修改web.config中
<configSections>
<段名=“RewriterConfig”TYPE =“URLRewriter.Config.CustomRewriterConfigSerializerSectionHandler,URLRewriter”/>
</ configSections>
<RewriterConfig ConfigSource =“/配置/ URLRewriter.config”> </ RewriterConfig>
3,添加urlRewriter.config配置文件
<?XML版本=“1.0”?>
<RewriterConfig>
<规则>
< - !规则博客内容再现 - >
<RewriterRule>
<LookFor>〜/ 1.aspx </ LookFor>
<的SendTo>〜/ Default.aspx的</ SendTo资料>
</ RewriterRule>
<RewriterRule>
<LookFor>〜/(\ d {4})/(\ d {2})/(\ d {2})\。ASPX </ LookFor>
<的SendTo>〜/ ShowBlogContent.aspx?年= $ 1个月= $ 2天= $ 3 </ SendTo资料>
</ RewriterRule>
</规则>
</ RewriterConfig>
完成。