Cambiato URL alle pagine, ma reindirizza ancora alle pagine?
-
10-12-2019 - |
Domanda
Ho un sito web esterno che deve mostrare URL solo in minuscolo.Non voglio usare l'URL Rewrite o qualsiasi strumento di terze parti.Invece abbiamo deciso di cambiare l'URL effettivo della Biblioteca Pagine.L'ho fatto usando il seguente script.
if ($list.RootFolder.Url.Equals("Pages"))
{
$ListURL = $SPWeb.url + "/" + $list.RootFolder.Url
Write-Host $ListURL
Write-Host "Title: " $list.Title ", Url: " $list.RootFolder.Url -foregroundcolor magenta
#try
#{
$list.Title = $list.Title.ToLower()
$list.RootFolder.MoveTo($list.RootFolder.Url.ToLower())
#}
#catch [System.Management.Automation.RuntimeException]
#{
# write-host 'RuntimeException'
#}
$list.Update()
Write-Host "Title: " $list.Title ", Url: " $list.RootFolder.Url -foregroundcolor darkgreen
}
if ($SPWeb -ne $null)
{
$SPWeb.Dispose()
}
.
... quali uscite ...
http://dev. ... /contact/Pages
Title: Pages , Url: Pages
RuntimeException
Title: pages , Url: pages
.
Sì, ottengo un errore di runtime, ma il nome dell'URL e Lista modifica effettivamente (immagine SE).
Se vado direttamente a una pagina nella libreria Pagine direttamente, ottengo il nuovo URL, ma se scrivo l'URL della mano corta (senza /pages/default.aspx
) ottengo il precedente URL maiuscolo iniziale /Pages
URL.La mia domanda è il motivo per cui, e come faccio a risolvere questo?
Soluzione
Sei reindirizzato alla libreria pagine invece di pagine perché c'è una proprietà sul livello Web, che contiene il vecchio URL della pagina predefinita.Per risolvere questo problema, è necessario inserire il seguente snippet nello script:
.
$folder = $SPWeb.RootFolder;
$folder.WelcomePage = $folder.WelcomePage.Replace("Pages","pages");
$folder.Update();
Spero che questo aiutato.In caso contrario, non esitare a chiedermi i dettagli.