Code sur écran d'ordinateur

Symfony4 : comment créer une page d’erreur 404 personnalisée

Il faut commencer par installer le bundle nécessaire :

composer require symfony/twig-pack

Lorsque cela est fait, créer le template error404.html.twig

templates/
└─ bundles/
   └─ TwigBundle/
      └─ Exception/
         └─ error404.html.twig

Exemple de template error404.html.twig

{% extends 'base.html.twig' %}

{% block body %}
    <h1>Page not found</h1>

    <p>
        The requested page couldn't be located. Checkout for any URL
        misspelling or <a href="{{ path('homepage') }}">return to the homepage</a>.
    </p>
{% endblock %}

Pour tester le rendu, contrôler la configuration dans config/routes/dev/framework.yaml

_errors:
    resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
    prefix: /_error

Sur les versions récentes de Symfony, la route se déclare dans config/routes/framework.yaml

when@dev:
    _errors:
        resource: '@FrameworkBundle/Resources/config/routing/errors.php'
        type: php
        prefix: /_error

La page d’erreur est ensuite accessible sur http://localhost/_error/404