只需要在App_Code里添入一个自定义类,然后再写点代码就可以实现一个简单的c#伪静态功能了。
主要步骤如下。
步骤1,在App_Code里添加Class
步骤2,将Class 代码改成
public class MyModule : IHttpModule
{
public void Init(HttpApplication app)
{
// 登记 pipeline events
app.BeginRequest +=
new EventHandler(this.OnBeginRequest);
}
public void Dispose() { }
public void OnBeginRequest(object o, EventArgs args)
{
// 读取app 和 context
HttpApplication app = (HttpApplication)o;
HttpContext ctx = app.Context;
string fullOrigionalpath = app.Context.Request.Url.ToString();
if (fullOrigionalpath.Contains("确认伪静态路径的字符串比如: ‘blog.sina.com.cn/blog_’ + ‘博文文件名’”))
{
string[] phrase = fullOrigionalpath.Split('/');
app.Context.RewritePath(
“真正的文件路径”
}
}
}
步骤3,修改web.config文件
在<attpModules></attpModules>中添加
步骤4,在IIS里添加文件后缀
如果IIS中没有伪静态文件的后缀,需要自己添加。
具体操作:
在IIS找到相应网站,使用Handler Mappings目录下的Add Script Map功能,按照弹跳窗口指示操作。
如果IIS不是Integrated Mode,在IIS里添加完后,打开web.config在<httpHandlers></ httpHandlers >以及<handlers></ handlers >中添加
如果觉得这样操作比较麻烦的话,也可以不写自定义类,直接改写web.config文件也可以实现url重写,即伪静态功能。