工作日记,防止自己电脑中毒,给自己看,比较乱,来客莫怪
1.首先配置IIS 将404 错误 URL 设定为 Rewriter.aspx
2.将WDFrog.UrlRewriter.dll 文件复制到bin目录下
3.ReWriter.aspx 文件中的代码如下
采用单页形式,需要导如名明空间
<%@ Import Namespace="WDFrog.UrlRewriter" %>
protected void Page_Load(object sender, EventArgs e)
{
string url = Request.Url.ToString();
url = url.Substring(url.IndexOf("404;") + 4);
url = url.Replace(":80", string.Empty);
url = Url404Helper.GetUrl(url, "/default.aspx");
Response.Write(url);
//Server.Transfer(url);
}
4.web.Config文件配置如下 按正则表达式来的
<configuration>
<configSections>
<section name="url404" type="WDFrog.UrlRewriter.URL404,WDFrog.UrlRewriter"/>
</configSections>
<url404 >
<rules>
<add name="rule3" fromUrl="http://(.*?)/.{1}xxx.net/OTC/(/d+)/*" toUrl="/otc/list.aspx?page=$2" enabled="true" />
<add name="rule1" fromUrl="http://(.*?)/.{1}xxx.net/b(/d+)/s(/d+)/(/d+)" toUrl="/zhao/detail.aspx?BClass=$2&SClass=$3&Id=$4" enabled="true" />
<add name="rule2" fromUrl="http://(www/.)*?xxx.net/otc/(/d+)/*" toUrl="/otc/list.aspx?page=$2" enabled="true" />
</rules>
</url404>
<appSettings/>
...........
</configuration>
文件上传不了,鄙视csdn...
代码如下
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Text.RegularExpressions;
using
System.Configuration;
namespace
WDFrog.UrlRewriter
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//// <summary>
/// 首先将IIS的404错误定向到指定的页面
/// 配置文件格式
/// <configSections>
/// <section name="url404" type="URL404"/>
///</configSections>
/// <url404 >
/// <rules>
/// <add name="rule3" fromUrl="http://(.*?).{1}gyzs.net/OTC/(d+)/*" toUrl="/otc/list.aspx?page=$2" enabled="true" />
/// <add name="rule1" fromUrl="http://(.*?).{1}gyzs.net" toUrl="/$1/" enabled="true" />
/// <add name="rule2" fromUrl="http://(www.)*?gyzs.net/otc/(d+)/*" toUrl="/otc/list.aspx?page=$2" enabled="true" />
/// </rules>
/// </url404>
/// </summary>
public class URL404 : ConfigurationSection
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
public URL404()
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
//
// TODO: 在此处添加构造函数逻辑
//
}
[ConfigurationProperty("rules")]
public ConfigurationElemenRuleCollection Rules
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
get ...{ return (ConfigurationElemenRuleCollection)this["rules"]; }
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
[ConfigurationProperty("errorUrl")]
public string ErrorUrl
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
get ...{ return (string)this["errorUrl"]; }
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
set ...{ this["errorUrl"] = value; }
}
}
public class ConfigurationElementRule : ConfigurationElement
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
[ConfigurationProperty("name", IsRequired = true, IsKey = true)]
public string Name
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
get ...{ return (string)this["name"]; }
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
set ...{ this["name"] = value; }
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
[ConfigurationProperty("fromUrl", IsRequired = true)]
public string FromUrl
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
get ...{ return (string)this["fromUrl"]; }
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
set ...{ this["fromUrl"] = value; }
}
[ConfigurationProperty("toUrl", IsRequired = true)]
public string ToUrl
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
get ...{ return (string)this["toUrl"]; }
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
set ...{ this["toUrl"] = value; }
}
[ConfigurationProperty("enabled")]
public bool Enabled
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
get ...{ return (bool)this["enabled"]; }
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
set ...{ this["enabled"] = value; }
}
}
public class ConfigurationElemenRuleCollection : ConfigurationElementCollection
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
protected override ConfigurationElement CreateNewElement()
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
return new ConfigurationElementRule();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
protected override object GetElementKey(ConfigurationElement element)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
return ((ConfigurationElementRule)element).Name;
}
public ConfigurationElementRule this[int index]
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
get ...{ return (ConfigurationElementRule)BaseGet(index); }
}
public ConfigurationElementRule this[string name]
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
get ...{ return (ConfigurationElementRule)BaseGet(name); }
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
public static class Url404Helper
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
public static string GetUrl(string url, string defaultUrl)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
string retUrl = defaultUrl;
URL404 section = (URL404)ConfigurationManager.GetSection("url404");
try
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
foreach (ConfigurationElementRule rule in section.Rules)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
if (Regex.IsMatch(url, rule.FromUrl, RegexOptions.IgnoreCase | RegexOptions.Singleline) & rule.Enabled)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
retUrl = Regex.Replace(url, rule.FromUrl, rule.ToUrl, RegexOptions.IgnoreCase | RegexOptions.Singleline);
break;
}
}
}
catch (Exception ex)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
if (!string.IsNullOrEmpty(section.ErrorUrl))
retUrl = section.ErrorUrl;
}
return retUrl;
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}