そのためにリライトマップを使用することをお勧めします。書き換えマップを別のファイルに保存します。 web.configには、次のようになります。
<rewrite>
<rewriteMaps configSource="rewriteMaps.config"/>
<rules configSource="rewriteRules.config"/>
</rewrite>
あなたのrewriteRules.config;あなたのrewriteMaps.configで
<rules>
<rule name="Rule for Redirects">
<match url=".*" />
<conditions>
<add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" />
</rule>
</rules>
:
<rewriteMaps>
<rewriteMap name="Redirects">
<add key="/old1" value="/new1" />
<add key="/old2" value="/new2" />
</rewriteMap>
</rewriteMaps>
そして、URL書き換えモジュールは、あなたのIISで
をインストールする必要がありますが、古いURLでDBを持っている場合は、プログラムでrewriteMapsを埋めることができます。シンプルなロジックのサンプルはここにある:
var urls = new Dictionary<string, string>();
urls.Add("/old", "/new");
var lines = new List<string>();
lines.Add("<rewriteMaps>");
lines.Add("<rewriteMap name=\"Redirects\">");
foreach (var url in urls)
{
lines.Add(string.Format("<add key=\"{0}\" value=\"{1}\" />", url.Key, url.Value));
}
lines.Add("</rewriteMap>");
lines.Add("</rewriteMaps>");
System.IO.File.WriteAllLines(@"rewriteMaps.config", lines);
それは、大きなファイルの問題を解決するかもしれないが、どのように私はプログラム的にそれを行うことができ、私はそれがリンクによってリンクする書き込みカント、私は古いURLのテーブルを持っている私は –
あなたがそれを使用することができますか?あなたのために適切な形式でXMLを構築するいくつかのシンプルなコンソールアプリケーションを書くことができます –
サンプルコードであなたの答えを記述してくださいできますか? –