Thursday, March 20, 2008

Redirect SharePoint Site to New Location

I recently had a request to move a SharePoint subsite to a new location under a different site collection.  The site was moved over after performing the standard import/export stsadm commands.  However, the customer also wanted the old location to perform an automatic redirect for anyone still pointing to the old location.  I wanted to be able to do this without having hack up pages using designer (or other tool) or having to allow for code blocks within the default.aspx by opening my web.config up to vulnerabilities.  I found the easiest way to do this was with Javascript and a Content Editor Web Part.

  1. Add a Content Editor Web Part to the Main Page of the site.
  2. Modify the Web Part and click on Source Editor.
  3. Paste in the following code while changing the URLs to match your target.

    <HTML>
    <HEAD>
    <SCRIPT language="JavaScript">
    <!--
    function redirectsp()
      {
        top.location="
    http://sharepoint";
       }
       if (top.frames.length==0)
        {
         setTimeout('redirectsp()',0);
         }
    //-->
    </SCRIPT>
    </HEAD>
  4. <body>
    Redirecting you to the new location.  If you are not redirected, click <a href="
    http://sharepoint">HERE.</a>
    </body>
    </html>

  5. I set the redirect time to 0, but you can set it higher if you like.  1 sec = 1000, 2 sec = 2000, etc.
  6. Save the code changes.

The fun part of this solution is the fact that the code tries to load no matter what view you are in (i.e. Standard view, Edit Page, etc).  So, if you have to make changes to the code you have to let the page load but then time a press of the ESC key to keep the Javascript from loading each time.

Jeff

No comments:

Post a Comment