質問

(クエリ文字列を介してデータを検索するのではなく)動的コンテンツの検索エンジン最適化リンクを作成するWebサイトを作成します。そう:

の代わりに

mysite/SomeModifiableNname.aspx

mysite/DynamicContent.aspx?entryID=2345

リクエストをリダイレクトするスマート404ハンドラー、またはIISのカスタムMIMEタイプハンドラー以外に、ASP.NETでこれに適したソリューションはありますか?
ページファイル名は実行時に変更できる必要があることに留意してください。

役に立ちましたか?

解決 4

皆さんの考えに感謝します。提供された情報をもとに、私が必要とする解決策だと思うものに出会いました:

Global.asax(またはHttpModule経由)で、BeginRequestイベントをリッスンし、そこでContext.Rewriteパスを適用します。

void Application_BeginRequest(object sender, EventArgs e)
{
    string fullOrigionalpath = Request.Url.ToString();

    if (fullOrigionalpath.ToLower().Contains("/Games".ToLower()))
    {
        Context.RewritePath("Default.aspx?id=Games");
    }

}

そして、これらのリクエストを処理するページのOnPreInitメソッドで、PostBacksが適切に機能するように、書き換えパスを再度適用する必要があります。

protected override void OnPreInit(EventArgs e)
{
    base.OnPreInit(e);

    if (Request.QueryString["id"] == null)
        return;
    if (Request.QueryString["id"].ToLower().Equals("games"))
        Context.RewritePath("Games", "", "id=Games");
}

これが私が出くわした多くのURL書き換えモジュールよりも優れているのは、パスを動的にできることです。つまり、作成されたURLはデータ駆動型にすることができます。

他のヒント

これは一般にURL書き換えと呼ばれる広範なトピックです...

これを達成するにはいくつかの方法があります。 IIS書き換えモジュールを検討することをお勧めします。

おそらく、MVC用に開発され、ASP.NET 3.51で利用可能なURLルーティング機能も調査する必要があります

更新:あなたの意図についてもっと知りたいと思います。その最後の文は私を混乱させます。

これは過去にUrlRewrite.Netで行ったことがあります。 IIS7には、このための組み込み機能もあります

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top