Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions nuxt/redirects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,4 +107,42 @@ export const redirects: Record<string, NitroRouteRules> = {
'/blog/2025/04/building-oee-dashboard-with-flowfuse-part-3/': { redirect: { to: '/blog/2025/04/design-and-scale-oee-dashboard/', statusCode: 301 } },
'/sign-up/': { redirect: { to: 'https://app.flowfuse.com/account/create', statusCode: 301 } },

'/handbook/development/contributing/': { redirect: { to: '/handbook/engineering/contributing/', statusCode: 301 } },
'/changelog/2025/06/instance-performance-view/': { redirect: { to: '/changelog/2025/06/team-performance-view/', statusCode: 301 } },
'/integrations/node-red-contrib-abb-gofa': { redirect: { to: '/integrations/', statusCode: 301 } },
'/integrations/node-red-contrib-opcua/PLC_1.xml': { redirect: { to: '/integrations/node-red-contrib-opcua/', statusCode: 301 } },
'/handbook/engineering/product/product%20swimlanes/': { redirect: { to: '/handbook/engineering/product/product-swimlanes/', statusCode: 301 } },
'/ingest': { redirect: { to: '/', statusCode: 301 } },
'/handbook/marketing/customer-stories': { redirect: { to: '/handbook/marketing/content-strategy/customer-stories/', statusCode: 301 } },
'/handbook/marketing/customer-stories/': { redirect: { to: '/handbook/marketing/content-strategy/customer-stories/', statusCode: 301 } },
'/blog/2023/08/new-starter-tier/': { redirect: { to: '/blog/2023/08/flowfuse-1-11-release/', statusCode: 301 } },
'/handbook/peopleops/job-descriptions/technical-product-manager': { redirect: { to: '/handbook/peopleops/job-descriptions/product-manager/', statusCode: 301 } },
'/handbook/peopleops/job-descriptions/technical-product-manager/': { redirect: { to: '/handbook/peopleops/job-descriptions/product-manager/', statusCode: 301 } },
'/node-red/fundamentals/': { redirect: { to: '/blog/2023/01/getting-started-with-node-red/', statusCode: 301 } },
'/webinars/mqtt-vs-opc-ua-industrial-data-showdown/': { redirect: { to: '/webinars/2026/mqtt-vs-opc-ua-industrial-data-showdown/', statusCode: 301 } },
'/handbook/marketing/email/': { redirect: { to: '/handbook/marketing/', statusCode: 301 } },
'/blog/community/': { redirect: { to: '/blog/', statusCode: 301 } },
'/blog/community/1/': { redirect: { to: '/blog/', statusCode: 301 } },
'/handbook/development/security': { redirect: { to: '/handbook/engineering/security/', statusCode: 301 } },
'/handbook/development/security/': { redirect: { to: '/handbook/engineering/security/', statusCode: 301 } },
'/handbook/development/packaging/': { redirect: { to: '/handbook/engineering/packaging/', statusCode: 301 } },
'/get-started/': { redirect: { to: '/', statusCode: 301 } },
'/blog/2024/07/calling-python-script-from-node-red/example.py': { redirect: { to: '/blog/2024/07/calling-python-script-from-node-red/', statusCode: 301 } },
'/handbook/customer/sales/regions/': { redirect: { to: '/handbook/sales/regions/', statusCode: 301 } },
'/handbook/sales/v2/edge-connect-process/': { redirect: { to: '/handbook/sales/edge-connect-process/', statusCode: 301 } },
'/handbook/sales/v2/': { redirect: { to: '/handbook/sales/', statusCode: 301 } },
'/handbook/development/ops/': { redirect: { to: '/handbook/engineering/ops/', statusCode: 301 } },
'/handbook/development/ab-testing/': { redirect: { to: '/handbook/engineering/', statusCode: 301 } },
'/handbook/development/ops/staging/': { redirect: { to: '/handbook/engineering/ops/staging/', statusCode: 301 } },
'/jobs/dashboard-2-fe-engineer/': { redirect: { to: '/', statusCode: 301 } },
'/product/cloud/': { redirect: { to: '/product/hub/', statusCode: 301 } },
'/handbook/development/ops/observability': { redirect: { to: '/handbook/engineering/ops/observability/', statusCode: 301 } },
'/handbook/development/ops/observability/': { redirect: { to: '/handbook/engineering/ops/observability/', statusCode: 301 } },
'/handbook/product/strategy/': { redirect: { to: '/handbook/product/', statusCode: 301 } },
'/docs/user/assistant': { redirect: { to: '/docs/user/expert/', statusCode: 301 } },
'/handbook/marketing/videos/': { redirect: { to: '/handbook/design/videos/', statusCode: 301 } },
'/handbook/development/releases': { redirect: { to: '/handbook/engineering/releases/', statusCode: 301 } },
'/handbook/development/releases/': { redirect: { to: '/handbook/engineering/releases/', statusCode: 301 } },
'/handbook/peopleops/job-descriptions/dashboard-engineer/': { redirect: { to: '/handbook/peopleops/job-descriptions/', statusCode: 301 } },

}