我正在编写一个简单的HttpHandler来进行URL重写,但是遇到了一个难题。
为了测试,我创建了一个非常简单的HttpHandler类:
public class HttpHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.RewritePath("default.aspx", false);
//Rewriter.Rewrite(context);
}
public bool IsReusable
{
get
{
return true;
}
}
}
然后我在web.config文件中有以下的动词:
<httpHandlers>
<add verb="*" path="*" type="Tizma.CMS.Runtime.HttpHandler"/>
</httpHandlers>
我希望所有传入的URL都通过这个重写器。当我运行它时,ProcessRequest会触发,但RewritePath从未到达default.aspx。
请记住,这只是一个测试,最终default.aspx将传递类似于?pageid=2的查询字符串,我只想先弄清楚httphandlers的工作原理。
我做错了什么?