相対 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