@@ -336,3 +336,48 @@ time and again, you can have just one (or several) listeners deal with them.
336
336
your application (like :class: `Symfony\\ Component\\ Security\\ Core\\ Exception\\ AccessDeniedException `)
337
337
and takes measures like redirecting the user to the login page, logging them
338
338
out and other things.
339
+
340
+ Dumping error pages in static HTML files
341
+ -------------------------------------------
342
+
343
+ When a web server cannot handle a request or when it triggers an error without
344
+ calling the PHP application, it will return its default error pages, instead of
345
+ rendering the errors as defined in your application (whether it's Symfony's
346
+ default "Oops" error page or the pages you customized in your application).
347
+
348
+ To avoid that and always have your web server rendering your application's error
349
+ pages, you can dump each HTTP status error in a their own static HTML files:
350
+
351
+ .. code-block :: terminal
352
+
353
+ $ bin/console error:dump [--force] var/cache/prod/error_pages
354
+
355
+ .. note ::
356
+
357
+ By default, it will dump HTML files for each HTTP status error.
358
+ You can restrict that to dump only some HTTP status code by passing them as
359
+ in the second argument of the command.
360
+
361
+ Once the static pages are generated, you can now configure your web server to use
362
+ them instead of their default error page. Here is an example configuration with
363
+ nginx:
364
+
365
+ .. code-block :: nginx
366
+ # /etc/nginx/conf.d/example.com.conf
367
+ server {
368
+ # Your existing serverconfiguration
369
+ # ...
370
+
371
+
372
+ # Configure nginx to serve your application's error pages
373
+ error_page 400 /error_pages/400.html;
374
+ error_page 401 /error_pages/401.html;
375
+ # ...
376
+ error_page 510 /error_pages/510.html;
377
+ error_page 511 /error_pages/511.html;
378
+
379
+ location ^~ /error_pages/ {
380
+ root /path/to/your/symfony/var/cache/error_pages;
381
+ internal; # allows this location block to not be triggered when a user manually call these /error_pages/.* urls
382
+ }
383
+ }
0 commit comments