一部の SharePoint サイトをあるファームから別のファームに移行中です。もう少し複雑ですが、簡単にするために...
私が維持したいのは、人々がこれらのサイトやドキュメントなどのために持っている古い URL です。IIS URL Rewrite Module は良い方法のようです。
構造がどのようなものかについては、次のとおりです。
_______________________ _______________________
|oldfarm.company.com**| |newfarm.company.com**|
|oldsitecollection** | |newsitecollection** |
|subsitename | |subsitename |
|... | |... |
|_____________________| |_____________________|
** = 変更、他のすべては同じまま、URL ごと。
「newfarm」では、「oldfarm.company.com」に応答するように Web アプリケーションを拡張しました。その Web アプリケーションには、http ://oldfarm.company.com/oldsitecollection/ ... をhttpにリダイレクトする URL リダイレクト ルールがあります。 ://newfarm.company.com/newsitecollection/ ...
これは、私がやろうとしていることの大部分でうまく機能します。
私が苦労しているのは、QUERYSTRING 値の書き換えです。Sharepoint の Office Document Viewer には、QUERYSTRING にパス情報が含まれており、それを変更する必要があります。
元の URL サンプルは次のとおり です。 2Ecom%2Foldsitecollection%2Fsubsitename%2Fdoclib%2FForms%2FAllItems%2Easpx&DefaultItemOpen=1
リダイレクト後の URL (および私が立ち往生している場所) は次のとおりです 。 %3A%2F%2Foldfarm%2Ecompany%2Ecom%2Foldsitecollection%2Fsubsitename%2Fdoclib%2FForms%2FAllItems%2Easpx&DefaultItemOpen=1
必要な URL は次のとおりです 。 2Fnewfarm%2Ecompany%2Ecom%2Fnewsitecollection%2Fsubsitename%2Fdoclib%2FForms%2FAllItems%2Easpx&DefaultItemOpen=1
これらは動的置換ではないため、リライト マップを使用してみましたが、QUERYSTRING を変更することはできません。
私が取り組んでいる書き換えルールの例を次に示します。
<rewrite>
<rewriteMaps>
<rewriteMap name="WordViewer">
<add key="id=/oldsitecollection" value="id=/newsitecollection" />
</rewriteMap>
</rewriteMaps>
<rules>
<rule name="Rewrite rule1 for WordViewer">
<match url=".*WordViewer.aspx" />
<conditions>
<add input="{WordViewer:{QUERY_STRING}}" pattern="(.+)" />
</conditions>
<action type="Rewrite" url="{C:1}" appendQueryString="false" />
</rule>
</rules>
</rewrite>