From d46ddbe2b4675fcad187429766d5e53f4a36c66b Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Sat, 14 Jan 2023 23:51:12 +0000 Subject: [PATCH] feat: implement social previews by redirecting to origin server (#1144) --- plugins/social.server.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 plugins/social.server.ts diff --git a/plugins/social.server.ts b/plugins/social.server.ts new file mode 100644 index 00000000..5c215b96 --- /dev/null +++ b/plugins/social.server.ts @@ -0,0 +1,16 @@ +import { sendRedirect } from 'h3' + +export default defineNuxtPlugin(async (nuxtApp) => { + const route = useRoute() + if (!route.params.server) + return + + const req = nuxtApp.ssrContext!.event.node.req + const userAgent = req.headers['user-agent']! + if (!userAgent) + return + + const isOpenGraphCrawler = /twitterbot|discordbot|facebookexternalhit|googlebot|msnbot|baidu|ahrefsbot|duckduckgo/i.test(userAgent) + if (isOpenGraphCrawler) + await sendRedirect(nuxtApp.ssrContext!.event, `https:/${route.path}`, 301) +})