diff options
Diffstat (limited to 'app/Middleware/HandleDoubleSlash.js')
-rw-r--r-- | app/Middleware/HandleDoubleSlash.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/app/Middleware/HandleDoubleSlash.js b/app/Middleware/HandleDoubleSlash.js new file mode 100644 index 0000000..456b774 --- /dev/null +++ b/app/Middleware/HandleDoubleSlash.js | |||
@@ -0,0 +1,24 @@ | |||
1 | 'use strict' | ||
2 | /** @typedef {import('@adonisjs/framework/src/Request')} Request */ | ||
3 | /** @typedef {import('@adonisjs/framework/src/Response')} Response */ | ||
4 | /** @typedef {import('@adonisjs/framework/src/View')} View */ | ||
5 | |||
6 | class HandleDoubleSlash { | ||
7 | /** | ||
8 | * @param {object} ctx | ||
9 | * @param {Request} ctx.request | ||
10 | * @param {Function} next | ||
11 | */ | ||
12 | async handle ({ request, response }, next) { | ||
13 | // Redirect requests that contain duplicate slashes to the right path | ||
14 | if (request.url().includes('//')) { | ||
15 | return response.redirect( | ||
16 | request.url().replace(/\/{2,}/g, '/'), | ||
17 | ); | ||
18 | } | ||
19 | |||
20 | await next(); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | module.exports = HandleDoubleSlash | ||