Skip to content

Commit 7710ef8

Browse files
committed
ignore trailing slashes in redirects
1 parent f3e6f84 commit 7710ef8

File tree

1 file changed

+54
-53
lines changed

1 file changed

+54
-53
lines changed

websites/mswjs.io/vercel.json

Lines changed: 54 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"$schema": "https://openapi.vercel.sh/vercel.json",
23
"redirects": [
34
{
45
"source": "/examples",
@@ -12,180 +13,180 @@
1213
},
1314

1415
{
15-
"source": "/docs/getting-started/install",
16+
"source": "/docs/getting-started/install/:any?$",
1617
"destination": "/docs/quick-start#1-installation",
1718
"statusCode": 301
1819
},
1920
{
20-
"source": "/docs/getting-started/mocks",
21+
"source": "/docs/getting-started/mocks/:any?$",
2122
"destination": "/docs/quick-start#2-request-handlers",
2223
"statusCode": 301
2324
},
2425
{
25-
"source": "/docs/getting-started/mocks/rest-api",
26+
"source": "/docs/getting-started/mocks/rest-api/:any?$",
2627
"destination": "/docs/http",
2728
"statusCode": 301
2829
},
2930
{
30-
"source": "/docs/getting-started/mocks/graphql-api",
31+
"source": "/docs/getting-started/mocks/graphql-api/:any?$",
3132
"destination": "/docs/graphql",
3233
"statusCode": 301
3334
},
3435
{
35-
"source": "/docs/api/graphql/operation",
36+
"source": "/docs/api/graphql/operation/:any?$",
3637
"destination": "/docs/api/graphql#graphqloperationresolver",
3738
"statusCode": 301
3839
},
3940
{
40-
"source": "/docs/getting-started/integrate",
41+
"source": "/docs/getting-started/integrate/:any?$",
4142
"destination": "/docs/quick-start#3-process-level-integration",
4243
"statusCode": 301
4344
},
4445
{
45-
"source": "/docs/getting-started/integrate/browser",
46+
"source": "/docs/getting-started/integrate/browser/:any?$",
4647
"destination": "/docs/integrations/browser",
4748
"statusCode": 301
4849
},
4950
{
50-
"source": "/docs/getting-started/integrate/node",
51+
"source": "/docs/getting-started/integrate/node/:any?$",
5152
"destination": "/docs/integrations/node",
5253
"statusCode": 301
5354
},
5455

5556
{
56-
"source": "/docs/basics/request-handler",
57-
"destination": "/docs/http/intercepting-requests/",
57+
"source": "/docs/basics/request-handler/:any?$",
58+
"destination": "/docs/http/intercepting-requests",
5859
"statusCode": 301
5960
},
6061
{
61-
"source": "/docs/basics/response-resolver",
62+
"source": "/docs/basics/response-resolver/:any?$",
6263
"destination": "/docs/http/intercepting-requests/#response-resolver",
6364
"statusCode": 301
6465
},
6566
{
66-
"source": "/docs/basics/response-transformer",
67+
"source": "/docs/basics/response-transformer/:any?$",
6768
"destination": "/docs/http/mocking-responses",
6869
"statusCode": 301
6970
},
7071
{
71-
"source": "/docs/basics/request-matching",
72+
"source": "/docs/basics/request-matching/:any?$",
7273
"destination": "/docs/http/intercepting-requests",
7374
"statusCode": 301
7475
},
7576

7677
{
77-
"source": "/docs/api/setup-worker/print-handlers",
78+
"source": "/docs/api/setup-worker/print-handlers/:any?$",
7879
"destination": "/docs/api/setup-worker/list-handlers",
7980
"statusCode": 301
8081
},
8182
{
82-
"source": "/docs/api/rest",
83+
"source": "/docs/api/rest/:any?$",
8384
"destination": "/docs/api/http",
8485
"statusCode": 301
8586
},
8687
{
87-
"source": "/docs/api/response",
88+
"source": "/docs/api/response/:any?$",
8889
"destination": "/docs/basics/mocking-responses",
8990
"statusCode": 301
9091
},
9192
{
92-
"source": "/docs/api/response/once",
93+
"source": "/docs/api/response/once/:any?$",
9394
"destination": "/docs/api/http#once",
9495
"statusCode": 301
9596
},
9697
{
97-
"source": "/docs/api/response/network-error",
98+
"source": "/docs/api/response/network-error/:any?$",
9899
"destination": "/docs/recipes/network-errors",
99100
"statusCode": 301
100101
},
101102
{
102-
"source": "/docs/api/context/status",
103+
"source": "/docs/api/context/status/:any?$",
103104
"destination": "/docs/basics/mocking-responses#mocking-status-code-and-text",
104105
"statusCode": 301
105106
},
106107
{
107-
"source": "/docs/api/context/set",
108+
"source": "/docs/api/context/set/:any?$",
108109
"destination": "/docs/basics/mocking-responses#mocking-headers",
109110
"statusCode": 301
110111
},
111112
{
112-
"source": "/docs/api/context/body",
113+
"source": "/docs/api/context/body/:any?$",
113114
"destination": "/docs/basics/mocking-responses#mocking-body",
114115
"statusCode": 301
115116
},
116117
{
117-
"source": "/docs/api/context/text",
118+
"source": "/docs/api/context/text/:any?$",
118119
"destination": "/docs/basics/mocking-responses#text-responses",
119120
"statusCode": 301
120121
},
121122
{
122-
"source": "/docs/api/context/json",
123+
"source": "/docs/api/context/json/:any?$",
123124
"destination": "/docs/basics/mocking-responses#json-responses",
124125
"statusCode": 301
125126
},
126127
{
127-
"source": "/docs/api/context/xml",
128+
"source": "/docs/api/context/xml/:any?$",
128129
"destination": "/docs/api/http-response#httpresponsexmlbody-init",
129130
"statusCode": 301
130131
},
131132
{
132-
"source": "/docs/api/context/data",
133+
"source": "/docs/api/context/data/:any?$",
133134
"destination": "/docs/graphql/mocking-responses",
134135
"statusCode": 301
135136
},
136137
{
137-
"source": "/docs/api/context/extensions",
138+
"source": "/docs/api/context/extensions/:any?$",
138139
"destination": "/docs/graphql/mocking-responses",
139140
"statusCode": 301
140141
},
141142
{
142-
"source": "/docs/api/context/errors",
143+
"source": "/docs/api/context/errors/:any?$",
143144
"destination": "/docs/graphql/mocking-responses",
144145
"statusCode": 301
145146
},
146147
{
147-
"source": "/docs/api/context/delay",
148+
"source": "/docs/api/context/delay/:any?$",
148149
"destination": "/docs/api/delay",
149150
"statusCode": 301
150151
},
151152
{
152-
"source": "/docs/api/context/fetch",
153+
"source": "/docs/api/context/fetch/:any?$",
153154
"destination": "/docs/api/bypass",
154155
"statusCode": 301
155156
},
156157
{
157-
"source": "/docs/extensions/life-cycle-events",
158+
"source": "/docs/extensions/life-cycle-events/:any?$",
158159
"destination": "/docs/api/life-cycle-events",
159160
"statusCode": 301
160161
},
161162

162163
{
163-
"source": "/docs/recipes/mocking-error-responses",
164+
"source": "/docs/recipes/mocking-error-responses/:any?$",
164165
"destination": "/docs/basics/mocking-responses#mocking-error-responses",
165166
"statusCode": 301
166167
},
167168
{
168-
"source": "/docs/recipes/usage-with-cdn",
169+
"source": "/docs/recipes/usage-with-cdn/:any?$",
169170
"destination": "/docs/recipes/using-cdn",
170171
"statusCode": 301
171172
},
172173
{
173-
"source": "/docs/recipes/binary-response-type",
174+
"source": "/docs/recipes/binary-response-type/:any?$",
174175
"destination": "/docs/recipes/responding-with-binary",
175176
"statusCode": 301
176177
},
177178
{
178-
"source": "/docs/recipes/debugging-uncaught-requests",
179+
"source": "/docs/recipes/debugging-uncaught-requests/:any?$",
179180
"destination": "/docs/runbook",
180181
"statusCode": 301
181182
},
182183
{
183-
"source": "/docs/recipes/deferred-mounting",
184+
"source": "/docs/recipes/deferred-mounting/:any?$",
184185
"destination": "/docs/integrations/browser#conditionally-enable-mocking",
185186
"statusCode": 301
186187
},
187188
{
188-
"source": "/docs/recipes/request-assertions",
189+
"source": "/docs/recipes/request-assertions/:any?$",
189190
"destination": "/docs/best-practices/avoid-request-assertions",
190191
"statusCode": 301
191192
},
@@ -201,88 +202,88 @@
201202
"statusCode": 301
202203
},
203204
{
204-
"source": "/docs/basics/handling-websocket-events",
205+
"source": "/docs/basics/handling-websocket-events/:any?$",
205206
"destination": "/docs/websocket/",
206207
"statusCode": 301
207208
},
208209
{
209-
"source": "/docs/concepts/request-namespace",
210+
"source": "/docs/concepts/request-namespace/:any?$",
210211
"destination": "/docs/http/",
211212
"statusCode": 301
212213
},
213214
{
214-
"source": "/docs/concepts/request-handler#execution-order",
215+
"source": "/docs/concepts/request-handler#execution-order/:any?$",
215216
"destination": "/docs/defaults#handler-order-sensitivity",
216217
"statusCode": 301
217218
},
218219
{
219-
"source": "/docs/concepts/request-handler",
220+
"source": "/docs/concepts/request-handler/:any?$",
220221
"destination": "/docs/http/intercepting-requests/",
221222
"statusCode": 301
222223
},
223224
{
224-
"source": "/docs/concepts/response-resolver",
225+
"source": "/docs/concepts/response-resolver/:any?$",
225226
"destination": "/docs/http/intercepting-requests/#response-resolver",
226227
"statusCode": 301
227228
},
228229
{
229-
"source": "/docs/getting-started",
230+
"source": "/docs/getting-started/:any?$",
230231
"destination": "/docs/quick-start",
231232
"statusCode": 301
232233
},
233234

234235
{
235-
"source": "/docs/recipes/cookies",
236+
"source": "/docs/recipes/cookies/:any?$",
236237
"destination": "/docs/http/mocking-responses/cookies",
237238
"statusCode": 301
238239
},
239240
{
240-
"source": "/docs/recipes/query-parameters",
241+
"source": "/docs/recipes/query-parameters/:any?$",
241242
"destination": "/docs/http/intercepting-requests/query-parameters",
242243
"statusCode": 301
243244
},
244245
{
245-
"source": "/docs/recipes/response-patching",
246+
"source": "/docs/recipes/response-patching/:any?$",
246247
"destination": "/docs/http/mocking-responses/response-patching",
247248
"statusCode": 301
248249
},
249250
{
250-
"source": "/docs/recipes/polling",
251+
"source": "/docs/recipes/polling/:any?$",
251252
"destination": "/docs/http/mocking-responses/polling",
252253
"statusCode": 301
253254
},
254255
{
255-
"source": "/docs/recipes/streaming",
256+
"source": "/docs/recipes/streaming/:any?$",
256257
"destination": "/docs/http/mocking-responses/streaming",
257258
"statusCode": 301
258259
},
259260
{
260-
"source": "/docs/recipes/network-errors",
261+
"source": "/docs/recipes/network-errors/:any?$",
261262
"destination": "/docs/http/mocking-responses/network-errors",
262263
"statusCode": 301
263264
},
264265
{
265-
"source": "/docs/recipes/file-uploads",
266+
"source": "/docs/recipes/file-uploads/:any?$",
266267
"destination": "/docs/http/mocking-responses/file-uploads",
267268
"statusCode": 301
268269
},
269270
{
270-
"source": "/docs/recipes/responding-with-binary",
271+
"source": "/docs/recipes/responding-with-binary/:any?$",
271272
"destination": "/docs/http/mocking-responses/binary",
272273
"statusCode": 301
273274
},
274275
{
275-
"source": "/docs/recipes/responding-with-binary/",
276+
"source": "/docs/recipes/responding-with-binary/:any?$",
276277
"destination": "/docs/http/mocking-responses/binary",
277278
"statusCode": 301
278279
},
279280
{
280-
"source": "/docs/recipes/graphql-query-batching",
281+
"source": "/docs/recipes/graphql-query-batching/:any?$",
281282
"destination": "/docs/graphql/mocking-responses/query-batching",
282283
"statusCode": 301
283284
},
284285
{
285-
"source": "/docs/recipes/mock-graphql-schema",
286+
"source": "/docs/recipes/mock-graphql-schema/:any?$",
286287
"destination": "/docs/graphql/schema-first-mocking",
287288
"statusCode": 301
288289
}

0 commit comments

Comments
 (0)