664 lines
25 KiB
JSON
664 lines
25 KiB
JSON
{
|
|
"version": 3,
|
|
"pages404": true,
|
|
"appType": "app",
|
|
"caseSensitive": false,
|
|
"basePath": "",
|
|
"redirects": [
|
|
{
|
|
"source": "/:path+/",
|
|
"destination": "/:path+",
|
|
"internal": true,
|
|
"priority": true,
|
|
"statusCode": 308,
|
|
"regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"
|
|
},
|
|
{
|
|
"source": "/blog",
|
|
"destination": "/de/blog",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/blog(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/contact",
|
|
"destination": "/de/contact",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/contact(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/team",
|
|
"destination": "/de/team",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/team(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products",
|
|
"destination": "/de/products",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/100-renewable-energy-only-with-the-right-cable-infrastructure.html",
|
|
"destination": "/de/blog/100-renewable-energy-only-with-the-right-cable-infrastructure",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/100-renewable-energy-only-with-the-right-cable-infrastructure\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/billion-euro-package-for-infrastructure-the-cable-boom-is-coming.html",
|
|
"destination": "/de/blog/billion-euro-package-for-infrastructure-the-cable-boom-is-coming",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/billion-euro-package-for-infrastructure-the-cable-boom-is-coming\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/cable-abbreviations-decoded-the-key-to-choosing-the-right-cable.html",
|
|
"destination": "/de/blog/cable-abbreviations-decoded-the-key-to-choosing-the-right-cable",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/cable-abbreviations-decoded-the-key-to-choosing-the-right-cable\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/cable-drum-quality-the-foundation-of-cable-reliability.html",
|
|
"destination": "/de/blog/cable-drum-quality-the-foundation-of-cable-reliability",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/cable-drum-quality-the-foundation-of-cable-reliability\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/cable-drum-safety-ensuring-smooth-operations-and-accident-free-environments.html",
|
|
"destination": "/de/blog/cable-drum-safety-ensuring-smooth-operations-and-accident-free-environments",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/cable-drum-safety-ensuring-smooth-operations-and-accident-free-environments\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/climate-neutral-by-2050-what-we-need-to-do-to-achieve-this-goal.html",
|
|
"destination": "/de/blog/climate-neutral-by-2050-what-we-need-to-do-to-achieve-this-goal",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/climate-neutral-by-2050-what-we-need-to-do-to-achieve-this-goal\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/cost-comparison-copper-vs-aluminum-cables-in-wind-farms-which-is-worthwhile-in-the-long-term.html",
|
|
"destination": "/de/blog/cost-comparison-copper-vs-aluminum-cables-in-wind-farms-which-is-worthwhile-in-the-long-term",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/cost-comparison-copper-vs-aluminum-cables-in-wind-farms-which-is-worthwhile-in-the-long-term\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/expanding-the-grid-by-2025-building-the-foundation-for-a-successful-energy-transition.html",
|
|
"destination": "/de/blog/expanding-the-grid-by-2025-building-the-foundation-for-a-successful-energy-transition",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/expanding-the-grid-by-2025-building-the-foundation-for-a-successful-energy-transition\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/eye-opening-realities-of-green-energy-transformation.html",
|
|
"destination": "/de/blog/eye-opening-realities-of-green-energy-transformation",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/eye-opening-realities-of-green-energy-transformation\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/focus-on-wind-farm-construction-three-typical-cable-challenges.html",
|
|
"destination": "/de/blog/focus-on-wind-farm-construction-three-typical-cable-challenges",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/focus-on-wind-farm-construction-three-typical-cable-challenges\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/from-smart-to-sustainable-this-is-what-the-energy-industry-will-look-like-in-the-near-future.html",
|
|
"destination": "/de/blog/from-smart-to-sustainable-this-is-what-the-energy-industry-will-look-like-in-the-near-future",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/from-smart-to-sustainable-this-is-what-the-energy-industry-will-look-like-in-the-near-future\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/green-energy-starts-underground-and-with-a-plan.html",
|
|
"destination": "/de/blog/green-energy-starts-underground-and-with-a-plan",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/green-energy-starts-underground-and-with-a-plan\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/how-the-cable-industry-is-driving-sustainability-and-renewable-energies-forward.html",
|
|
"destination": "/de/blog/how-the-cable-industry-is-driving-sustainability-and-renewable-energies-forward",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/how-the-cable-industry-is-driving-sustainability-and-renewable-energies-forward\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/how-the-right-cables-quietly-power-the-green-energy-revolution.html",
|
|
"destination": "/de/blog/how-the-right-cables-quietly-power-the-green-energy-revolution",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/how-the-right-cables-quietly-power-the-green-energy-revolution\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/how-to-choose-the-right-cable-for-your-next-project.html",
|
|
"destination": "/de/blog/how-to-choose-the-right-cable-for-your-next-project",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/how-to-choose-the-right-cable-for-your-next-project\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/is-wind-energy-really-enough-a-deeper-dive-behind-the-headlines.html",
|
|
"destination": "/de/blog/is-wind-energy-really-enough-a-deeper-dive-behind-the-headlines",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/is-wind-energy-really-enough-a-deeper-dive-behind-the-headlines\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/etib-in-the-directory-of-wind-energy-2025.html",
|
|
"destination": "/de/blog/etib-in-the-directory-of-wind-energy-2025",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/etib-in-the-directory-of-wind-energy-2025\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/na2xsf2y-three-conductor-medium-voltage-cable-available.html",
|
|
"destination": "/de/blog/na2xsf2y-three-conductor-medium-voltage-cable-available",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/na2xsf2y-three-conductor-medium-voltage-cable-available\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/recycling-of-cable-drums-sustainability-in-wind-power-projects.html",
|
|
"destination": "/de/blog/recycling-of-cable-drums-sustainability-in-wind-power-projects",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/recycling-of-cable-drums-sustainability-in-wind-power-projects\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/securing-the-future-with-h1z2z2-k-our-solar-cable-for-intersolar-2025.html",
|
|
"destination": "/de/blog/securing-the-future-with-h1z2z2-k-our-solar-cable-for-intersolar-2025",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/securing-the-future-with-h1z2z2-k-our-solar-cable-for-intersolar-2025\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/the-art-of-cable-logistics-moving-the-backbone-of-modern-energy-networks.html",
|
|
"destination": "/de/blog/the-art-of-cable-logistics-moving-the-backbone-of-modern-energy-networks",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/the-art-of-cable-logistics-moving-the-backbone-of-modern-energy-networks\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/the-best-underground-cables-for-wind-power-and-solar-order-from-us-now.html",
|
|
"destination": "/de/blog/the-best-underground-cables-for-wind-power-and-solar-order-from-us-now",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/the-best-underground-cables-for-wind-power-and-solar-order-from-us-now\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/the-perfect-cable-inquiry-how-to-save-yourself-unnecessary-queries.html",
|
|
"destination": "/de/blog/the-perfect-cable-inquiry-how-to-save-yourself-unnecessary-queries",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/the-perfect-cable-inquiry-how-to-save-yourself-unnecessary-queries\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/this-what-you-need-to-know-about-renewable-energies-in-2025.html",
|
|
"destination": "/de/blog/this-what-you-need-to-know-about-renewable-energies-in-2025",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/this-what-you-need-to-know-about-renewable-energies-in-2025\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/welcome-to-the-future-of-etib-our-new-website-is-live.html",
|
|
"destination": "/de/blog/welcome-to-the-future-of-etib-our-new-website-is-live",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/welcome-to-the-future-of-etib-our-new-website-is-live\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/what-makes-a-first-class-cable-find-out-here.html",
|
|
"destination": "/de/blog/what-makes-a-first-class-cable-find-out-here",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/what-makes-a-first-class-cable-find-out-here\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/which-cables-for-wind-power-differences-from-low-to-extra-high-voltage-explained-2.html",
|
|
"destination": "/de/blog/which-cables-for-wind-power-differences-from-low-to-extra-high-voltage-explained-2",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/which-cables-for-wind-power-differences-from-low-to-extra-high-voltage-explained-2\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/why-the-n2xsf2y-is-the-ideal-cable-for-your-energy-project.html",
|
|
"destination": "/de/blog/why-the-n2xsf2y-is-the-ideal-cable-for-your-energy-project",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/why-the-n2xsf2y-is-the-ideal-cable-for-your-energy-project\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/posts/why-wind-farm-grid-connection-cables-must-withstand-extreme-loads.html",
|
|
"destination": "/de/blog/why-wind-farm-grid-connection-cables-must-withstand-extreme-loads",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/posts/why-wind-farm-grid-connection-cables-must-withstand-extreme-loads\\.html(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/high-voltage-cables/n2xsfl2y",
|
|
"destination": "/de/products/n2xsfl2y-hv",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/high-voltage-cables/n2xsfl2y(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/high-voltage-cables/na2xsfl2y-3",
|
|
"destination": "/de/products/na2xsfl2y-hv",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/high-voltage-cables/na2xsfl2y-3(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/low-voltage-cables/n2x2y",
|
|
"destination": "/de/products/n2x2y",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/low-voltage-cables/n2x2y(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/low-voltage-cables/n2xy",
|
|
"destination": "/de/products/n2xy",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/low-voltage-cables/n2xy(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/low-voltage-cables/na2x2y",
|
|
"destination": "/de/products/na2x2y",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/low-voltage-cables/na2x2y(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/low-voltage-cables/na2xy",
|
|
"destination": "/de/products/na2xy",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/low-voltage-cables/na2xy(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/low-voltage-cables/nay2y",
|
|
"destination": "/de/products/nay2y",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/low-voltage-cables/nay2y(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/low-voltage-cables/naycwy",
|
|
"destination": "/de/products/naycwy",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/low-voltage-cables/naycwy(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/low-voltage-cables/nayy",
|
|
"destination": "/de/products/nayy",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/low-voltage-cables/nayy(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/low-voltage-cables/ny2y",
|
|
"destination": "/de/products/ny2y",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/low-voltage-cables/ny2y(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/low-voltage-cables/nycwy",
|
|
"destination": "/de/products/nycwy",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/low-voltage-cables/nycwy(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/low-voltage-cables/nyy",
|
|
"destination": "/de/products/nyy",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/low-voltage-cables/nyy(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/medium-voltage-cables/n2xs2y",
|
|
"destination": "/de/products/n2xs2y",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/medium-voltage-cables/n2xs2y(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/medium-voltage-cables/n2xsf2y",
|
|
"destination": "/de/products/n2xsf2y",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/medium-voltage-cables/n2xsf2y(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/medium-voltage-cables/n2xsfl2y-3",
|
|
"destination": "/de/products/n2xsfl2y-mv",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/medium-voltage-cables/n2xsfl2y-3(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/medium-voltage-cables/na2xs2y",
|
|
"destination": "/de/products/na2xs2y",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/medium-voltage-cables/na2xs2y(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/medium-voltage-cables/na2xsf2y",
|
|
"destination": "/de/products/na2xsf2y",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/medium-voltage-cables/na2xsf2y(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/medium-voltage-cables/na2xsfl2y",
|
|
"destination": "/de/products/na2xsfl2y-mv",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/medium-voltage-cables/na2xsfl2y(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/power-cables/medium-voltage-cables/na2xsy",
|
|
"destination": "/de/products/na2xsy",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/power-cables/medium-voltage-cables/na2xsy(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/products/solar-cables/h1z2z2-k",
|
|
"destination": "/de/products/solar-cables/h1z2z2-k",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/products/solar-cables/h1z2z2-k(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/de/produkte/stromkabel/solarkabel/h1z2z2-k",
|
|
"destination": "/de/produkte/solarkabel/h1z2z2-k",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/de/produkte/stromkabel/solarkabel/h1z2z2-k(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/de/produkte/stromkabel/niederspannungskabel/naycwy-2",
|
|
"destination": "/de/produkte/niederspannungskabel/naycwy",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/de/produkte/stromkabel/niederspannungskabel/naycwy-2(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/de/produkte/stromkabel/niederspannungskabel/ny2y-2",
|
|
"destination": "/de/produkte/niederspannungskabel/ny2y",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/de/produkte/stromkabel/niederspannungskabel/ny2y-2(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/vcf/klaus-mintel",
|
|
"destination": "/klaus-mintel.vcf",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/vcf/klaus-mintel(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/vcf/michael-bodemer",
|
|
"destination": "/michael-bodemer.vcf",
|
|
"statusCode": 308,
|
|
"regex": "^(?!/_next)/vcf/michael-bodemer(?:/)?$"
|
|
}
|
|
],
|
|
"headers": [
|
|
{
|
|
"source": "/:path*",
|
|
"headers": [
|
|
{
|
|
"key": "Content-Security-Policy",
|
|
"value": "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://analytics.infra.mintel.me; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: blob: https://e-tib.com https://staging.e-tib.com https://testing.e-tib.com http://etib.localhost https://www.gravatar.com https://gravatar.com https://*.tile.openstreetmap.org https://tile.openstreetmap.org https://unpkg.com; connect-src 'self' https://analytics.infra.mintel.me https://errors.infra.mintel.me https://raw.githack.com https://raw.githubusercontent.com; frame-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests;"
|
|
},
|
|
{
|
|
"key": "X-Frame-Options",
|
|
"value": "DENY"
|
|
},
|
|
{
|
|
"key": "X-Content-Type-Options",
|
|
"value": "nosniff"
|
|
},
|
|
{
|
|
"key": "Referrer-Policy",
|
|
"value": "strict-origin-when-cross-origin"
|
|
},
|
|
{
|
|
"key": "Permissions-Policy",
|
|
"value": "camera=(), microphone=(), geolocation=(), interest-cohort=()"
|
|
},
|
|
{
|
|
"key": "Strict-Transport-Security",
|
|
"value": "max-age=63072000; includeSubDomains; preload"
|
|
}
|
|
],
|
|
"regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"
|
|
}
|
|
],
|
|
"rewrites": {
|
|
"beforeFiles": [
|
|
{
|
|
"source": "/:locale/datasheets/:path*",
|
|
"destination": "/api/datasheets/:path*",
|
|
"regex": "^(?:/([^/]+?))/datasheets(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/:locale/brochures/:path*",
|
|
"destination": "/api/brochures/:path*",
|
|
"regex": "^(?:/([^/]+?))/brochures(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/datasheets/:path*",
|
|
"destination": "/api/datasheets/:path*",
|
|
"regex": "^/datasheets(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/brochures/:path*",
|
|
"destination": "/api/brochures/:path*",
|
|
"regex": "^/brochures(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/de/produkte",
|
|
"destination": "/de/products",
|
|
"regex": "^/de/produkte(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/de/produkte/:path*",
|
|
"destination": "/de/products/:path*",
|
|
"regex": "^/de/produkte(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/de/kontakt",
|
|
"destination": "/de/contact",
|
|
"regex": "^/de/kontakt(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/en/produkte",
|
|
"destination": "/en/products",
|
|
"regex": "^/en/produkte(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/en/produkte/:path*",
|
|
"destination": "/en/products/:path*",
|
|
"regex": "^/en/produkte(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/en/kontakt",
|
|
"destination": "/en/contact",
|
|
"regex": "^/en/kontakt(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/en/impressum",
|
|
"destination": "/en/legal-notice",
|
|
"regex": "^/en/impressum(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/en/datenschutz",
|
|
"destination": "/en/privacy-policy",
|
|
"regex": "^/en/datenschutz(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/en/agbs",
|
|
"destination": "/en/terms",
|
|
"regex": "^/en/agbs(?:/)?$"
|
|
}
|
|
],
|
|
"afterFiles": [],
|
|
"fallback": []
|
|
},
|
|
"dynamicRoutes": [
|
|
{
|
|
"page": "/[locale]",
|
|
"regex": "^/([^/]+?)(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPlocale": "nxtPlocale"
|
|
},
|
|
"namedRegex": "^/(?<nxtPlocale>[^/]+?)(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/[locale]/blog",
|
|
"regex": "^/([^/]+?)/blog(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPlocale": "nxtPlocale"
|
|
},
|
|
"namedRegex": "^/(?<nxtPlocale>[^/]+?)/blog(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/[locale]/blog/opengraph-image",
|
|
"regex": "^/([^/]+?)/blog/opengraph\\-image(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPlocale": "nxtPlocale"
|
|
},
|
|
"namedRegex": "^/(?<nxtPlocale>[^/]+?)/blog/opengraph\\-image(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/[locale]/blog/[slug]",
|
|
"regex": "^/([^/]+?)/blog/([^/]+?)(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPlocale": "nxtPlocale",
|
|
"nxtPslug": "nxtPslug"
|
|
},
|
|
"namedRegex": "^/(?<nxtPlocale>[^/]+?)/blog/(?<nxtPslug>[^/]+?)(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/[locale]/blog/[slug]/opengraph-image",
|
|
"regex": "^/([^/]+?)/blog/([^/]+?)/opengraph\\-image(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPlocale": "nxtPlocale",
|
|
"nxtPslug": "nxtPslug"
|
|
},
|
|
"namedRegex": "^/(?<nxtPlocale>[^/]+?)/blog/(?<nxtPslug>[^/]+?)/opengraph\\-image(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/[locale]/contact",
|
|
"regex": "^/([^/]+?)/contact(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPlocale": "nxtPlocale"
|
|
},
|
|
"namedRegex": "^/(?<nxtPlocale>[^/]+?)/contact(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/[locale]/contact/opengraph-image",
|
|
"regex": "^/([^/]+?)/contact/opengraph\\-image(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPlocale": "nxtPlocale"
|
|
},
|
|
"namedRegex": "^/(?<nxtPlocale>[^/]+?)/contact/opengraph\\-image(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/[locale]/opengraph-image",
|
|
"regex": "^/([^/]+?)/opengraph\\-image(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPlocale": "nxtPlocale"
|
|
},
|
|
"namedRegex": "^/(?<nxtPlocale>[^/]+?)/opengraph\\-image(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/[locale]/team",
|
|
"regex": "^/([^/]+?)/team(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPlocale": "nxtPlocale"
|
|
},
|
|
"namedRegex": "^/(?<nxtPlocale>[^/]+?)/team(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/[locale]/team/opengraph-image",
|
|
"regex": "^/([^/]+?)/team/opengraph\\-image(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPlocale": "nxtPlocale"
|
|
},
|
|
"namedRegex": "^/(?<nxtPlocale>[^/]+?)/team/opengraph\\-image(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/[locale]/test",
|
|
"regex": "^/([^/]+?)/test(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPlocale": "nxtPlocale"
|
|
},
|
|
"namedRegex": "^/(?<nxtPlocale>[^/]+?)/test(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/[locale]/[slug]",
|
|
"regex": "^/([^/]+?)/([^/]+?)(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPlocale": "nxtPlocale",
|
|
"nxtPslug": "nxtPslug"
|
|
},
|
|
"namedRegex": "^/(?<nxtPlocale>[^/]+?)/(?<nxtPslug>[^/]+?)(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/[locale]/[slug]/opengraph-image",
|
|
"regex": "^/([^/]+?)/([^/]+?)/opengraph\\-image(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPlocale": "nxtPlocale",
|
|
"nxtPslug": "nxtPslug"
|
|
},
|
|
"namedRegex": "^/(?<nxtPlocale>[^/]+?)/(?<nxtPslug>[^/]+?)/opengraph\\-image(?:/)?$"
|
|
}
|
|
],
|
|
"staticRoutes": [
|
|
{
|
|
"page": "/_global-error",
|
|
"regex": "^/_global\\-error(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/_global\\-error(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/_not-found",
|
|
"regex": "^/_not\\-found(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/_not\\-found(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/api/feedback",
|
|
"regex": "^/api/feedback(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/api/feedback(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/api/save-session",
|
|
"regex": "^/api/save\\-session(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/api/save\\-session(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/api/whoami",
|
|
"regex": "^/api/whoami(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/api/whoami(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/health",
|
|
"regex": "^/health(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/health(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/manifest.webmanifest",
|
|
"regex": "^/manifest\\.webmanifest(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/manifest\\.webmanifest(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/robots.txt",
|
|
"regex": "^/robots\\.txt(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/robots\\.txt(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/sitemap.xml",
|
|
"regex": "^/sitemap\\.xml(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/sitemap\\.xml(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/stats/api/send",
|
|
"regex": "^/stats/api/send(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/stats/api/send(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/test",
|
|
"regex": "^/test(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/test(?:/)?$"
|
|
}
|
|
],
|
|
"dataRoutes": [],
|
|
"rsc": {
|
|
"header": "rsc",
|
|
"varyHeader": "rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch",
|
|
"prefetchHeader": "next-router-prefetch",
|
|
"didPostponeHeader": "x-nextjs-postponed",
|
|
"contentTypeHeader": "text/x-component",
|
|
"suffix": ".rsc",
|
|
"prefetchSegmentHeader": "next-router-segment-prefetch",
|
|
"prefetchSegmentSuffix": ".segment.rsc",
|
|
"prefetchSegmentDirSuffix": ".segments",
|
|
"clientParamParsing": false,
|
|
"dynamicRSCPrerender": false
|
|
},
|
|
"rewriteHeaders": {
|
|
"pathHeader": "x-nextjs-rewritten-path",
|
|
"queryHeader": "x-nextjs-rewritten-query"
|
|
}
|
|
} |