または反対に、URL が存在しない場合にのみ URL を書き換えるにはどうすればよいですか? たとえば、404 を傍受します。
コンテキストは次のとおりです。サイトを ASP クラシックから ASP.NET に徐々に移行しています。ゆっくりとは、9000 以上の .asp ページを一度に 1 ページずつ .aspx に変換することを意味します。
これを行っている間、リンク切れを防ぎ、検索エンジンでのランキングが失われないようにしたいと考えています。つまり、.aspx ページによって提供される場合でも、.asp URL はすべて存在し続ける必要があります。
私ができるようにしたいのは、.asp -> .aspx を書き換える ISAPI-Rewrite ルールを用意することです。ただし、ターゲット URL が実際に存在しない場合は、.asp を実行して返すだけです。
そのため、まだ somepage.asp を .aspx に変換していない場合、URL は書き換えられず、somepage.asp が表示されます。somepage.asp がなくなると、URL は somepage.aspx に書き換えられ、実行されて返されますが、Web ブラウザー/検索エンジンは somepage.asp を受け取ったと認識します。
将来のある時点で、.aspx ページに正規の URLを設定し、検索エンジンが都合のよいときに追いつくようにする予定です。
注: IIS でカスタム 404 を使用してファイル システムをチェックし、ターゲットの .aspx ページが存在する場合は Server.Transfer を実行してみましたが、asp クラシックから asp.net に転送することはできません。(「The specified 'Page Language="c#" ' option is unknown or invalid. error '8000d001'」というメッセージが表示されます) これが機能する唯一の方法は、Server.Transfer の代わりに 301/302 リダイレクトを実行した場合です。現時点では望ましくありません。(経営陣は妄想的で、オプションではないと言っています。)