マーケティングサイトに代わる新しいSitefinityサイトがあります。先週の金曜日に切り替えが発生し、今日問題が見つかりました。古いサイトにアクセスできなくなったコンテンツ(pdf、jpg)があり、コンテンツ移行計画に含まれていませんでした。その上、経営陣はオプションとしてロールバックを削除しました。
したがって、私が思いついた解決策は、IIS 7のURL書き換えモジュールを使用して、コンテンツにアクセスできるように古いサイトをホストする新しいURLを指すことです。これは私が思いついたweb.configのxmlです:
<rewrite>
<rules>
<rule name="RedirectFileNotFound" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{URL}" negate="false" pattern="/\.*$" />
</conditions>
<action type="Redirect" url="http://www.oldsite.com{REQUEST_URI}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
URLがファイルまたはフォルダーに解決されるかどうかをテストし、拡張子が付いたものを要求していることを確認します。ルールに合格すると、古いサイトの同じ場所にリダイレクトされます。理想的には、これは、以前に古いサイトにリンクしていたものはすべてそのままにしておくことができることを意味します。
問題は、何もリダイレクトされないことです。
ルールをいじることで、モジュールが動作していることを確認しました。つまり、すべてを書き換えるように設定でき、動作します。しかし、これらのルールは機能しません。
私の理論では、Sitefinityはデータベースストレージを使用しているため、「IsFile」マッチタイプを何らかの形で短絡させます。完全な推測ですが、私はこの時点で少し途方に暮れています。
この方法でurlrewritingを使用して404をリダイレクトするにはどうすればよいですか?