I came across an interesting challenge while working on my current project; which is a migration from a classic HTML-based website to SharePoint 2010 For Internet Sites, Enterprise. Custom error pages…
Out of the box, SharePoint likes to give the user a useless 404 error like this:
While there is out-of-the-box support for custom error pages in SharePoint 2010, it’s not completely obvious how you set the custom error pages for a web application. First of all, SharePoint includes an sps404.html page in the /_layouts/{language} folder which by default includes an STSNavigate reference to handle the redirect. That’s all well and good, but I want my own!
Here’s how I got what I wanted:
Copy the sps404.html page and rename it to sps404custom.html – leave the new file in the same location. Open the file in your favorite HTML editor and look for the STSNavigate line – change the link to an appropriate page, example /Pages/Page-Not-Found.aspx.
This would replace the OOTB 404 behavior with an automatic redirect to a Publishing page under the root Pages library of my web application. Cool!
Now I just have to create a page at /Pages/Page-Not-Found.aspx and add some text. The page will inherit whatever branding elements I’ve applied to the rest of my site, leaving the user with a much cleaner and consistent experience. Once I’ve done those two things, there’s a little PowerShell that must be done to actually set the custom 404 page:
$WebApp = Get-SPWebApplication http://url $WebApp.FileNotFoundPage = "sps404custom.html" $WebApp.Update()
Once that’s done, try going to a bogus page in your site and you should be taken to your custom 404 page!
Nice post.
It really helped me.
http://sharepointcafe.net