website/.netlify/edge-functions/redirect.js
zhuxiujuan28 45d7975e2b add 4.1 docs
Signed-off-by: zhuxiujuan28 <562873187@qq.com>
2024-09-10 16:49:57 +08:00

25 lines
699 B
JavaScript

export default async (req, context) => {
const { url } = req;
const parsedUrl = new URL(url);
const path = parsedUrl.pathname;
const regex = /^(\/zh\/docs|\/docs)\/v[0-9]+\.[0-9]+.*$/;
if (regex.test(path)) {
return;
} else {
let hasContentAfterDocs = false;
const newPath = path.replace(/(\/docs\/)(.*)$/, (match, p1, p2) => {
if (p2.trim() === "") {
return `${p1}v4.1/`;
} else {
hasContentAfterDocs = true;
return `${p1}v4.1/${p2}`;
}
});
const redirectStatusCode = hasContentAfterDocs ? 301 : 302;
const redirectUrl = new URL(newPath, req.url);
return Response.redirect(redirectUrl, redirectStatusCode);
}
};