2012-02-11 15 views
1

私は自分のサイト(ASP.NET 4.0/IIS6)でURL書き換えを使用しますが、aspxではなくHTMLを使用します。ここに記載されているものはすべてIIS 6 executing html as aspxです。問題は、サイト上の実際の.htmlファイル(htmlファイルがサイトフォルダに存在する)がWebブラウザで開かないことです。これを解決する方法ですか?ありがとう!IIS 6、htmlファイル/拡張子、urlrewriting

+0

「また、あなたが(あなたがURLの書き換えている場合など)が存在しないファイルに拡張子をマップしようとしている場合ことを注意することが重要ですファイルが存在するかどうかを確認するボックスをオフにしてください。 " –

+0

はい、私は、問題は、ファイル(html)が存在するときにブラウザで開く必要があるということです。 – ihorko

+1

あなたはそれがWebブラウザで開かないと言う。代わりにダウンロードされたか、まったく応答しないのか、サーバーエラー(404/500)が発生するのですか? –

答えて

0

あなたは、このようなカスタムHttpModuleをを使用することができます。

public class CheckRealHtmlFile : System.Web.IHttpModule 
{ 
    public void Dispose() 
    { 
    } 
    public void Init(System.Web.HttpApplication context) 
    { 
     context.BeginRequest += new EventHandler(context_BeginRequest); 
    } 
    void context_BeginRequest(object sender, EventArgs e) 
    { 
     System.Web.HttpApplication app = sender as System.Web.HttpApplication; 
     if (app != null) 
     { 
      System.Text.RegularExpressions.Regex rHtml = new System.Text.RegularExpressions.Regex(@"\.html$", System.Text.RegularExpressions.RegexOptions.IgnoreCase); 
      if (rHtml.IsMatch(app.Context.Request.Url.AbsolutePath) && !System.IO.File.Exists(app.Context.Server.MapPath(app.Context.Request.Url.AbsolutePath))) 
      { 
       //Execute your html -> aspx logic 
      } 
      else 
       return; 
     } 
     else 
      return; 
    } 
} 
関連する問題