2009-04-06 6 views
3

私のような、(時間程度)従来のASPからASP.NETに移行され、大っぽいWebプロジェクトを持っている、と古いアドレスからの要求をリダイレクトしたい://従来のASPからASP.NETへの移行時にリンクリダイレクトを処理する方法は?

いくつかの/パスを?古いpage.asp FOO =バー

新しいアドレスへ:

/other/path/new-page.aspx?qaz=bak

かなり長い間、従来のASPページはASP.NETページと並行して実行され、個々のページはASP.NETバージョンに置き換えられます。可能であれば、古いページから新しいページにリダイレクトして、ユーザーが404エラーを受け取らないようにし、蓄積されたPageRankをページに保持したいと考えています。

私の質問は、クラシックASPから新しいテンプレートへのリダイレクションロジックはどうですか?明らかな解決策は、old-page.aspをnew-page.aspxにリダイレクトする簡単なVBScriptに置き換えることですが、長期的には古い.aspファイルを取り除きたいので、リダイレクトをそのサイトが.NETで完全に実行された後にも存在するようにします。

1つのオプションは.asp拡張子をASP.NETにマップし、リダイレクトをHttpHandlerとして実装することですが、要求がASPに渡された後に従来のASPエンジンを実行する方法はありません。ネット。

答えて

3

2年前、私は電子商取引会社と同じ問題に直面し、ウェブサイトを.NETにアップグレードしました。主な問題は、お気に入りの中に古いaspページがいくつあるのか、またSEOの問題が何人いるか分かりませんでした。はい、asp拡張子をASP.netにマップすることはできますが、aspファイルを実行する能力が失われるため、すべてのaspページを更新する必要がありますが、これは実行できない可能性があります。

私が見つけた最良の解決策は、IISでISAPIリダイレクトフィルターを実装することでした。これはIIS BEFORE、aspまたはasp.netランタイムによって実行されるアプリです。それはあなたが望む任意のルール、aspファイルの実行を許可すべきかどうか、あるいはリダイレクトすべきかどうかに基づいて決定を下すか、またはurl-rewritingを使ってリクエストを処理します。ウェブサイトのリクエストが実行される前に実行されるため、必ずしもクリーンな操作ではありません。また、他の開発者が実行していることが分からないと混乱が生じる可能性があります。だから、もしあなたがこのルートに行くなら、あなたのウェブサイトには、たくさんのコメントやドキュメンテーションがあり、開発者にIISが実行中であることを知らせるための文書があることを確かめてください...

コードプロジェクトでこれを実装する方法についての良い説明があります。ここに行き、それをチェックしてください。 http://www.codeproject.com/KB/ISAPI/isapiredirector.aspx

Good Luck!

1

"HTTP 301 - Permanently Moved"レスポンスコードは、これが正確に設計されたものである必要があります。

http://en.wikipedia.org/wiki/HTTP_301

ISAPIリダイレクションフィルタは、はい、それは新しいURLへの訪問者をリダイレクトする、という意味で動作します。

ただし、ISAPIリダイレクト戦略には3つの重要な問題があります。

  1. もっとコードfoo.aspが透過的にbar.aspxにリダイレクトされ、両方のは、Googleでインデックス化されている場合
  2. ブックマークや検索エンジンのエントリが新しい、正しいURLを
  3. で更新されることはありません保つ/書き込みしますGoogleの同じコンテンツに2つの重複したURLがあります。これは検索結果を詰まらせ、実際には私の信念に反しています。
関連する問題