diff options
author | vantezzen <hello@vantezzen.io> | 2020-04-02 14:22:55 +0200 |
---|---|---|
committer | vantezzen <hello@vantezzen.io> | 2020-04-02 14:22:55 +0200 |
commit | 2ff924e0cc3494489abf0853080f316cc009e18a (patch) | |
tree | a6bb51f77c126f6174a595dda0dbfbfd03b006c8 /app/Middleware/HandleDoubleSlash.js | |
parent | Add new home page (diff) | |
parent | Merge pull request #22 from getferdi/dependabot/npm_and_yarn/acorn-7.1.1 (diff) | |
download | ferdium-server-2ff924e0cc3494489abf0853080f316cc009e18a.tar.gz ferdium-server-2ff924e0cc3494489abf0853080f316cc009e18a.tar.zst ferdium-server-2ff924e0cc3494489abf0853080f316cc009e18a.zip |
Merge branch 'master' of https://github.com/getferdi/ferdi-server
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 | ||