2

古いWebアプリケーションを、構造の異なる新しいWebアプリケーションに置き換えています。

古いアプリへのさまざまなリンクをブックマークしたユーザーがいるため、新しいアプリの仮想ディレクトリパスを変更できません。

このブックマークを持っているユーザーがいるとしましょう。

http://server/webapp/oldpage.aspx?data=somedata

新しいアプリは同じ仮想ディレクトリに存在し、古いアプリを置き換えますが、oldpage.aspxはなくなり、代わりにレイアウトが異なりますが、古いURLのパラメーターが必要です。

そこで、404エラーをredirectfrombookmark.aspxにリダイレクトするように設定しました。ここで、リクエストの処理方法を決定します。

問題は、私が受け取る唯一のパラメーターが「aspxerrorpath = / webapp / oldpage.aspx」であり、「data」パラメーターではなく、リクエストを正しく処理するために必要なことです。

404ハンドラーで完全な「元の」URLを取得する方法はありますか?

編集:答えを読んで、私は質問を十分に明確にしなかったようです:

  1. ユーザーは多くの異なるページ(oldpage1、oldpage2など)をブックマークしているので、私はそれらを平等に扱う必要があります。
  2. 各古いページのパラメーターはほぼ同じであり、特定のパラメーターのみが必要です。
  3. 「新しい」アプリケーションの「古い」仮想ディレクトリ名を再利用したい。
  4. 検索ボットなどは問題ではありません。これは動的コンテンツを含む内部アプリケーションであり、非常に頻繁に期限切れになります。

問題は、古い名前で「新しい」アプリケーションに空のページを作成せずに、OnLoadにRequest.Redirectを作成せずに、これを実行できるかどうかです。つまり、これは404メカニズム、またはGlobal.asaxなどのイベント処理を使用して実行できます。

4

4 に答える 4

2

UrlRewritingNetコンポーネントを調べることができます。

于 2009-02-02T18:32:11.833 に答える
0

POST および GET パラメータは、リクエストごとにのみ使用できます。古いページ (OldPage.aspx) の名前が既にわかっている場合は、そこにカスタム リダイレクトを追加してみませんか?

于 2009-02-02T17:50:27.970 に答える