Emad GabrielThoughts, tips and shortcuts about building software
SharePoint

PowerShell script to set URL redirects for SharePoint site using SPWebConfigModification

To have http redirects in a sharepoint we can use something like this in the web.config file

<location path="oldpage1.htm">
<system.webServer>
<httpRedirect enabled="true" destination="newpage1.html" exactDestination="true" httpResponseStatus="Permanent" />
</system.webServer>
</location>

One simple way of doing it using PowerShell is to use the SPWebConfigModication object.

The following script can achieve that

 

$Owner = "redirectMod"
$webApp = Get-SPWebApplication $Url

 

$modification = New-Object Microsoft.SharePoint.Administration.SPWebConfigModification
$modification.Path = "configuration";
$modification.Name = "redirect-1" ;
$modification.Sequence = 0;
$modification.Owner =$Owner;
$modification.Type = 0 # EnsureChildNode;
$modification.Value = "<location path='"+$from+"'><system.webServer><httpRedirect enabled='true' destination='"+$to+"' exactDestination='true' httpResponseStatus='Permanent' /></system.webServer></location>";
$webApp.WebConfigModifications.Add($modification);

$webApp.Update()
$webApp.Parent.ApplyWebConfigModifications()
do{
Start-Sleep -Seconds 2;
Write-Host "." -NoNewline
$configJobRunning = IsWebConfigModificationJobPendingOrRunning $webApp;
}while ($configJobRunning);

 

PowerShell