現在、私の製品ページの URL は次のようになっています
http://www.localhost:80/products/default.aspx?code=productCode
で商品ページにアクセスしたい
http://www.localhost:80/productCode
これにはHTTPモジュールを使用しました。
public class UrlRewritingModule : IHttpModule
{
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);
context.AuthorizeRequest += new EventHandler(context_AuthorizeRequest);
}
void context_AuthorizeRequest(object sender, EventArgs e)
{
HttpContext context = ((HttpApplication)sender).Context;
if (some condition)
{
context.RewritePath(url);
}
}
void context_PreRequestHandlerExecute(object sender, EventArgs e)
{
//We set back the original url on browser
HttpContext context = ((HttpApplication)sender).Context;
if (context.Items["originalUrl"] != null)
{
context.RewritePath((string)context.Items["originalUrl"]);
}
}
}
web.config に登録しましたが、正常に動作しています。しかし、IIS にデプロイすると、そのセッション変数とアプリケーション変数は null 参照例外をスローしません。
誰でも私を助けることができますか?
編集: 書き換えられた URL のセッション/アプリケーション変数にアクセスするには、追加のコードが必要ですか?