我有一个使用绝对 url 而不是相对 url 构建的顶部导航栏,问题是,如果我将该网站集从 PROD 备份还原到 QA,那么 QA 中的 url 指向生产。
所以,我正在尝试创建一个脚本来用相对 URL 替换绝对 URL。
具体问题是:。有了知道的 Url Root 和很多 url,我怎样才能从第二个中删除第一个?
示例:如果我在变量中有 www.mydomain.com。然后在第二个变量中我有 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
# }
#}
}
}
}
}
在下面的屏幕截图中,旧网址是:
https://xxx.com/Pages/clientinvoices.aspx
新的 URL 应该是:
/Pages/clientinvoices.aspx