summaryrefslogtreecommitdiff
path: root/caddytest/integration/caddyfile_adapt/error_example.txt
diff options
context:
space:
mode:
authorFrancis Lavoie <lavofr@gmail.com>2021-08-26 16:31:55 -0400
committerGitHub <noreply@github.com>2021-08-26 14:31:55 -0600
commit403732c433b816409e3525a9f49b4cc90abc2486 (patch)
tree9c017f8ab0e01c907ae71bc6c76bb2cdebc39d42 /caddytest/integration/caddyfile_adapt/error_example.txt
parentf6d5ec2fd68c2b9ae3104c0e2650b37f07a552e1 (diff)
httpcaddyfile: Reorder some directives (#4311)
We realized we made some mistakes with the directive ordering, so we're making some minor adjustments. `abort` and `error` don't really make sense to be after other handler directives, because you would expect to be able to "fail-fast" and throw an error before falling through to some `file_server` or `respond` typically. So we're moving them up to just before `respond`, i.e. before the common handler directives. This is also more consistent with our existing examples in the docs, which actually didn't work due to the directive ordering. See https://caddyserver.com/docs/caddyfile/directives/error#examples Also, `push` doesn't quite make sense to be after `handle`/`route`, since its job is to read from response headers to push additional resources if necessary, and `handle`/`route` may be terminal so push would not be reached if it was declared outside those. And also, it would make sense to be _before_ `templates` because a template _could_ add a `Link` header to the response dynamically.
Diffstat (limited to 'caddytest/integration/caddyfile_adapt/error_example.txt')
-rw-r--r--caddytest/integration/caddyfile_adapt/error_example.txt138
1 files changed, 138 insertions, 0 deletions
diff --git a/caddytest/integration/caddyfile_adapt/error_example.txt b/caddytest/integration/caddyfile_adapt/error_example.txt
new file mode 100644
index 0000000..bd42aee
--- /dev/null
+++ b/caddytest/integration/caddyfile_adapt/error_example.txt
@@ -0,0 +1,138 @@
+example.com {
+ root * /srv
+
+ # Trigger errors for certain paths
+ error /private* "Unauthorized" 403
+ error /hidden* "Not found" 404
+
+ # Handle the error by serving an HTML page
+ handle_errors {
+ rewrite * /{http.error.status_code}.html
+ file_server
+ }
+
+ file_server
+}
+----------
+{
+ "apps": {
+ "http": {
+ "servers": {
+ "srv0": {
+ "listen": [
+ ":443"
+ ],
+ "routes": [
+ {
+ "match": [
+ {
+ "host": [
+ "example.com"
+ ]
+ }
+ ],
+ "handle": [
+ {
+ "handler": "subroute",
+ "routes": [
+ {
+ "handle": [
+ {
+ "handler": "vars",
+ "root": "/srv"
+ }
+ ]
+ },
+ {
+ "handle": [
+ {
+ "error": "Unauthorized",
+ "handler": "error",
+ "status_code": 403
+ }
+ ],
+ "match": [
+ {
+ "path": [
+ "/private*"
+ ]
+ }
+ ]
+ },
+ {
+ "handle": [
+ {
+ "error": "Not found",
+ "handler": "error",
+ "status_code": 404
+ }
+ ],
+ "match": [
+ {
+ "path": [
+ "/hidden*"
+ ]
+ }
+ ]
+ },
+ {
+ "handle": [
+ {
+ "handler": "file_server",
+ "hide": [
+ "./Caddyfile"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "terminal": true
+ }
+ ],
+ "errors": {
+ "routes": [
+ {
+ "match": [
+ {
+ "host": [
+ "example.com"
+ ]
+ }
+ ],
+ "handle": [
+ {
+ "handler": "subroute",
+ "routes": [
+ {
+ "group": "group0",
+ "handle": [
+ {
+ "handler": "rewrite",
+ "uri": "/{http.error.status_code}.html"
+ }
+ ]
+ },
+ {
+ "handle": [
+ {
+ "handler": "file_server",
+ "hide": [
+ "./Caddyfile"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "terminal": true
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+} \ No newline at end of file