-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathredirects_example_test.go
91 lines (82 loc) · 1.64 KB
/
redirects_example_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package redirects
import (
"encoding/json"
"os"
)
func Example() {
h := Must(ParseString(`
# Implicit 301 redirects
/home /
/blog/my-post.php /blog/my-post
/news /blog
/google https://www.google.com
# Redirect with a 301
/home / 301
# Redirect with a 302
/my-redirect / 302
# Rewrite a path
/pass-through /index.html 200
# Show a custom 404 for this path
/ecommerce /store-closed 404
# Single page app rewrite
/* /index.html 200
# Proxying
/api/* https://api.example.com/:splat 200
`))
enc := json.NewEncoder(os.Stdout)
enc.SetIndent("", " ")
enc.Encode(h)
// Output:
// [
// {
// "From": "/home",
// "To": "/",
// "Status": 301
// },
// {
// "From": "/blog/my-post.php",
// "To": "/blog/my-post",
// "Status": 301
// },
// {
// "From": "/news",
// "To": "/blog",
// "Status": 301
// },
// {
// "From": "/google",
// "To": "https://www.google.com",
// "Status": 301
// },
// {
// "From": "/home",
// "To": "/",
// "Status": 301
// },
// {
// "From": "/my-redirect",
// "To": "/",
// "Status": 302
// },
// {
// "From": "/pass-through",
// "To": "/index.html",
// "Status": 200
// },
// {
// "From": "/ecommerce",
// "To": "/store-closed",
// "Status": 404
// },
// {
// "From": "/*",
// "To": "/index.html",
// "Status": 200
// },
// {
// "From": "/api/*",
// "To": "https://api.example.com/:splat",
// "Status": 200
// }
// ]
}