Files
stats/apps/docs/index.js
2024-11-13 23:29:22 +01:00

44 lines
1.5 KiB
JavaScript

const express = require('express');
const app = express();
const redirects = [
['/', 'https://openpanel.dev/'],
['/docs', 'https://openpanel.dev/docs'],
['/docs/sdks/script', 'https://openpanel.dev/docs/sdks/script'],
['/docs/sdks/web', 'https://openpanel.dev/docs/sdks/script'],
['/docs/sdks/javascript', 'https://openpanel.dev/docs/sdks/node'],
['/docs/sdks/react', 'https://openpanel.dev/docs/sdks/react'],
['/docs/sdks/nextjs', 'https://openpanel.dev/docs/sdks/nextjs'],
['/docs/sdks/remix', 'https://openpanel.dev/docs/sdks/remix'],
['/docs/sdks/vue', 'https://openpanel.dev/docs/sdks/vue'],
['/docs/sdks/astro', 'https://openpanel.dev/docs/sdks/astro'],
['/docs/sdks/react-native', 'https://openpanel.dev/docs/sdks/react-native'],
['/docs/sdks/node', 'https://openpanel.dev/docs/sdks/node'],
['/docs/sdks/express', 'https://openpanel.dev/docs/sdks/express'],
['/docs/sdks/api', 'https://openpanel.dev/docs/api/track'],
['/docs/sdks/export', 'https://openpanel.dev/docs/api/export'],
[
'/docs/self-hosting',
'https://openpanel.dev/docs/self-hosting/self-hosting',
],
];
// Handle redirects for all defined routes
redirects.forEach(([from, to]) => {
app.get(from, (req, res) => {
console.log('redirecting', {
from,
to,
});
res.redirect(302, to);
});
});
// Optional: Catch-all route for undefined routes
app.get('*', (req, res) => {
console.log('fallback redirect', req.url);
res.redirect(302, 'https://openpanel.dev/docs');
});
app.listen(3000);