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).

Inserire Descrizione dell'immagine qui

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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top