0

相対 URL ではなく絶対 URL を使用して構築されたトップ ナビゲーション バーがあります。問題は、そのサイト コレクションを PROD から QA にバックアップ リストアすると、QA の URL が本番を指すことです。

そのため、絶対 URL を相対 URL に置き換えるスクリプトを作成しようとしています。

具体的な質問は次のとおりです。既知の URL ルートと多くの URL を使用して、最初の URL を 2 番目の URL から削除するにはどうすればよいですか?

例: 変数に www.mydomain.com があるとします。そして、2 番目の変数には www.mydomain.com/sites/site1 があり、/sites/site1 のみを返したい

これは私がこれまでに得たものです

 $var1 = "https://xxxx.com"
$var2 = "https://xxxxx.com/sites/10024960/"
$rootSiteCollection = Get-SPSite $siteCollectionUrl
if ($rootSiteCollection -ne $null)
{
     if($Site.RootWeb.AllProperties["WebTemplate"] -eq "Client")
     {
        $rootWeb = $rootSiteCollection.RootWeb
        $navigationNodes = $rootWeb.Navigation.TopNavigationBar 
        if ($navigationNodes -ne $null)
        {
            foreach($navNode in $navigationNodes)
            {
                write-host 'Old Url: '  $navNode.Url

                $regex = "^$([regex]::Escape($var1))(.+)"
                $var2 -replace $regex,'$1'

                write-host 'New Url: '  $var2

                #if($navNode.Children.Count -ge 0)
                #{
                #    foreach($navNodeChild in $navNode.Children)
                #    {
                #        write-host 'Old Url'
                #        write-host $navNode.Url
                #    }
                #}
            }
        }
    }
}

下のスクリーンショットでは、古い URL は次のとおりです。

https://xxx.com/Pages/clientinvoices.aspx

新しい URL は次のようになります。

/Pages/clientinvoices.aspx

http://screencast.com/t/73Uof4je

4

1 に答える 1