문제

소문자로 URL을 표시 해야하는 외부 웹 사이트가 있습니다.URL 재 작성 또는 제 3 자 도구를 사용하고 싶지 않습니다.대신 우리는 페이지 라이브러리의 실제 URL을 변경하기로 결정했습니다.나는 다음 스크립트를 사용하여 그것을 해냈습니다.

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

... 어떤 출력 ...

http://dev. ... /contact/Pages
Title:  Pages , Url:  Pages
RuntimeException
Title:  pages , Url:  pages
.

예, 런타임 오류가 발생했지만 URL 및 목록 이름은 실제로 변경됩니다 (SE 이미지).

여기에 이미지 설명

페이지 라이브러리에서 페이지에 직접 페이지로 이동하면 새 URL을 얻을 수 있지만 짧은 핸드 URL을 작성하면 이전 초기 대문자 /pages/default.aspx URL을 얻습니다.내 질문은 이유와 어떻게 해결할 수 있습니까?

도움이 되었습니까?

해결책

기본 페이지의 이전 URL을 보유하는 웹 레벨에 속성이 있기 때문에 페이지 라이브러리 대신 페이지 라이브러리로 리디렉션됩니다.이 문제를 해결하려면 스크립트에 다음 스 니펫을 삽입해야합니다.

$folder = $SPWeb.RootFolder;
$folder.WelcomePage = $folder.WelcomePage.Replace("Pages","pages");
$folder.Update();
.

이 도움이되기를 바랍니다.그렇지 않다면, 자세한 내용을 자유롭게 물어보십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top