255 lines
6.8 KiB
JSON
255 lines
6.8 KiB
JSON
{
|
|
"version": 3,
|
|
"pages404": true,
|
|
"appType": "app",
|
|
"caseSensitive": false,
|
|
"basePath": "",
|
|
"redirects": [
|
|
{
|
|
"source": "/:path+/",
|
|
"destination": "/:path+",
|
|
"internal": true,
|
|
"priority": true,
|
|
"statusCode": 308,
|
|
"regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"
|
|
}
|
|
],
|
|
"headers": [
|
|
{
|
|
"source": "/:path*",
|
|
"headers": [
|
|
{
|
|
"key": "Strict-Transport-Security",
|
|
"value": "max-age=31536000; includeSubDomains"
|
|
},
|
|
{
|
|
"key": "X-Content-Type-Options",
|
|
"value": "nosniff"
|
|
},
|
|
{
|
|
"key": "X-Frame-Options",
|
|
"value": "DENY"
|
|
},
|
|
{
|
|
"key": "Referrer-Policy",
|
|
"value": "strict-origin-when-cross-origin"
|
|
},
|
|
{
|
|
"key": "Permissions-Policy",
|
|
"value": "camera=(), microphone=(), geolocation=()"
|
|
},
|
|
{
|
|
"key": "Content-Security-Policy",
|
|
"value": "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https:; font-src 'self' data:; connect-src 'self' https: wss:; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; object-src 'none'"
|
|
}
|
|
],
|
|
"regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"
|
|
}
|
|
],
|
|
"onMatchHeaders": [],
|
|
"rewrites": {
|
|
"beforeFiles": [],
|
|
"afterFiles": [
|
|
{
|
|
"source": "/dashboard",
|
|
"destination": "http://dashboard:3001/dashboard",
|
|
"regex": "^/dashboard(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/dashboard/:path*",
|
|
"destination": "http://dashboard:3001/dashboard/:path*",
|
|
"regex": "^/dashboard(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/admin",
|
|
"destination": "http://admin:3002/admin",
|
|
"regex": "^/admin(?:/)?$"
|
|
},
|
|
{
|
|
"source": "/admin/:path*",
|
|
"destination": "http://admin:3002/admin/:path*",
|
|
"regex": "^/admin(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"
|
|
}
|
|
],
|
|
"fallback": []
|
|
},
|
|
"dynamicRoutes": [
|
|
{
|
|
"page": "/explore/[slug]",
|
|
"regex": "^/explore/([^/]+?)(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPslug": "nxtPslug"
|
|
},
|
|
"namedRegex": "^/explore/(?<nxtPslug>[^/]+?)(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/explore/[slug]/vehicles/[id]",
|
|
"regex": "^/explore/([^/]+?)/vehicles/([^/]+?)(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPslug": "nxtPslug",
|
|
"nxtPid": "nxtPid"
|
|
},
|
|
"namedRegex": "^/explore/(?<nxtPslug>[^/]+?)/vehicles/(?<nxtPid>[^/]+?)(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/footer/[slug]",
|
|
"regex": "^/footer/([^/]+?)(?:/)?$",
|
|
"routeKeys": {
|
|
"nxtPslug": "nxtPslug"
|
|
},
|
|
"namedRegex": "^/footer/(?<nxtPslug>[^/]+?)(?:/)?$"
|
|
}
|
|
],
|
|
"staticRoutes": [
|
|
{
|
|
"page": "/",
|
|
"regex": "^/(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/_global-error",
|
|
"regex": "^/_global\\-error(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/_global\\-error(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/_not-found",
|
|
"regex": "^/_not\\-found(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/_not\\-found(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/app-privacy-ar",
|
|
"regex": "^/app\\-privacy\\-ar(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/app\\-privacy\\-ar(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/app-privacy-en",
|
|
"regex": "^/app\\-privacy\\-en(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/app\\-privacy\\-en(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/app-privacy-fr",
|
|
"regex": "^/app\\-privacy\\-fr(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/app\\-privacy\\-fr(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/app-tc-ar",
|
|
"regex": "^/app\\-tc\\-ar(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/app\\-tc\\-ar(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/app-tc-en",
|
|
"regex": "^/app\\-tc\\-en(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/app\\-tc\\-en(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/app-tc-fr",
|
|
"regex": "^/app\\-tc\\-fr(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/app\\-tc\\-fr(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/company-workspace",
|
|
"regex": "^/company\\-workspace(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/company\\-workspace(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/explore",
|
|
"regex": "^/explore(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/explore(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/features",
|
|
"regex": "^/features(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/features(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/platform-operations",
|
|
"regex": "^/platform\\-operations(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/platform\\-operations(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/pricing",
|
|
"regex": "^/pricing(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/pricing(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/renter/dashboard",
|
|
"regex": "^/renter/dashboard(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/renter/dashboard(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/renter/notifications",
|
|
"regex": "^/renter/notifications(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/renter/notifications(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/renter/profile",
|
|
"regex": "^/renter/profile(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/renter/profile(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/renter/saved-companies",
|
|
"regex": "^/renter/saved\\-companies(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/renter/saved\\-companies(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/renter/sign-in",
|
|
"regex": "^/renter/sign\\-in(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/renter/sign\\-in(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/renter/sign-up",
|
|
"regex": "^/renter/sign\\-up(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/renter/sign\\-up(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/review",
|
|
"regex": "^/review(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/review(?:/)?$"
|
|
},
|
|
{
|
|
"page": "/sign-in",
|
|
"regex": "^/sign\\-in(?:/)?$",
|
|
"routeKeys": {},
|
|
"namedRegex": "^/sign\\-in(?:/)?$"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
} |