ASP.NETでURLを書き直そうとすると、ユーザーのブラウザでURLが変更されていることがわかります。私はWCF RESTサービスを使用しており、URLにアクセスする方法を変更したいと考えています。以下のコード例を参照してください。ASP.NET RewritePathが期待通りに動作しない/ブラウザのURLが変更される
私はリクエストをインターセプトするHttpModuleを持っています。
public class FormatModule : IHttpModule
{
#region IHttpModule Members
public void Dispose()
{
throw new NotImplementedException();
}
public void Init(HttpApplication application)
{
application.BeginRequest += new EventHandler(application_BeginRequest);
}
void application_BeginRequest(object sender, EventArgs e)
{
HttpContext context = HttpContext.Current;
if (context.Request.RawUrl.Contains(".pox"))
context.RewritePath("~/Lab1Service.svc?format=pox", false);
else if (context.Request.RawUrl.Contains(".json"))
context.RewritePath("~/Lab1Service.svc?format=json", false);
}
#endregion
}
問題は、ユーザーがブラウザのURLにアクセスしたときに発生します。
http://localhost/Lab1Service.svc.poxの代わりに、ブラウザのURLがhttp://localhost/Lab1Service.svc?format=poxに変更されます。この
public void Init(HttpApplication context){application = context;}
はのHttpApplicationコンテキスト初期化した後、パス
application.Context.RewritePath(rewritedUrl, Config.RebasePath);
それは変です..他のハンドラ/モジュールを登録している必要があります。whisはそのリダイレクトを行っています。 –
これは実際にはスラッシュです。 – StriplingWarrior