SharePoint 2013: La gestion native des pages d’erreur 404 (fr-FR)
SharePoint 2013 introduit une nouveauté qui permet de gérer nativement les pages d’erreur 404.
Le principe
Sur un site de publication (ou sur un site sur lequel les features de publication ont été activées), une page nommée "PageNotFoundError.aspx" est créée dans la bibliothèque de pages du site, basée sur le layout "Error".
http://spasipe.files.wordpress.com/2012/12/0.png?w=595&h=204
Comme le nom de la page l’indique, vous serez redirigés sur cette page si vous tentez d’accéder à une page du site qui n’existe pas (la fameuse erreur 404).
http://spasipe.files.wordpress.com/2012/12/1.png?w=595&h=176
Cette page d’erreur est customisable, comme tout autre page.
J’édite ici la page (PageNotFoundError.aspx, donc) et j’ajoute une image; je tente de nouveau d’accéder à une page inexistante dans le site
http://spasipe.files.wordpress.com/2012/12/2.png?w=595&h=365
Rien de bien compliqué dans cette gestion des erreurs 404 : une page créée par défaut, et customisable. Easy.
Type de contenu associé
La création d’une page d’erreur 404 s’effectue en utilisant le type de contenu "Error Page", qui hérite du modèle "Page".
Vous pouvez aller voir ce type de contenu via "Site Settings > Site content types"
http://spasipe.files.wordpress.com/2012/12/3.png?w=595
Vous retrouvez dans la liste le type de contenu
http://spasipe.files.wordpress.com/2012/12/4.png?w=595Si vous cliquez sur son nom, vous accédez à ses propriétés et notamment à sa description explicite
http://spasipe.files.wordpress.com/2012/12/5.png?w=595
Créer une nouvelle page d’erreur 404
Dans la bibliothèque de pages, cliquez sur "New Document", puis sur "Error Page".
http://spasipe.files.wordpress.com/2012/12/8.png?w=595
Saisissez un titre pour la page, le bon layout est sélectionné par défaut; cliquez sur "Create".
http://spasipe.files.wordpress.com/2012/12/9.png?w=595&h=428
La page est créée, vous pouvez alors la customiser et la publier.
Définir la page d’erreur par défaut
Vous pouvez créer plusieurs pages d’erreur 404 dans votre site, mais pour définir celle qui sera utilisée par défaut, vous ne pouvez pas passer par l’interface; si vous supprimez la page créée par défaut en espérant que la page que vous venez de créer s’appliquera automatiquement, vous risquez d’être déçu.
En effet dans ce cas vous vous retrouvez avec une page … 404 (La vraie cette fois :)), qui s’applique à la page "FileNotFoundError.aspx" que SharePoint ne trouve plus.
http://spasipe.files.wordpress.com/2012/12/10.png?w=595&h=270
Quelles solutions ?
Solution 1
Supprimez ou renommez la page d’erreur par défaut, et renommez celle que vous avez créée en tant que "PageNotFoundError.aspx".
Solution 2
Passez par du code, en utilisant la propriété "FileNotFoundUrl" de l’objet "SPSite" (voir l’article MSDN associé).
Pour ceux qui l’ignorent, l’objet "SPSite" représente une collection de site, dans le modèle objet de SharePoint.
Je cite la description de la propriété "FileNotFoundUrl" :
Get SPSite swerver relative Url or absolute URL to file not found page. This value is used as redirect URL for HTTP request where the resource can not be found.
Et pour les autres templates de site ?
Pour les sites créés avec un autre template que Publishing, activez les features de publication (scope collection de site et site), pour retrouver le même fonctionnement.
Conclusion
Une nouveauté intéressante que cette gestion native des pages d’erreur 404, facile à gérer, et surtout bien pratique !