diff --git a/package.json b/package.json
index e6bd3b8f5cf595809110aab9d73cd3ee6a9f6a51..f6e031a141a2dca3f3bde253725678e2b543c24b 100644
--- a/package.json
+++ b/package.json
@@ -21,6 +21,7 @@
     "@fastify/formbody": "^7.1.0",
     "@fastify/helmet": "^9.1.0",
     "@fastify/swagger": "^7.4.1",
+    "@fastify/url-data": "^5.1.0",
     "@open-xchange/logging": "^0.0.11",
     "bull": "^4.8.5",
     "dotenv-defaults": "^5.0.2",
diff --git a/src/create-app.js b/src/create-app.js
index b65a6d10de0fee4fd5f754b884991ed99b4be11c..7881857777bc71f03d6b58837a4becee9a43344a 100644
--- a/src/create-app.js
+++ b/src/create-app.js
@@ -1,5 +1,6 @@
 import fastify from 'fastify'
 import formBodyPlugin from '@fastify/formbody'
+import urlDataPlugin from '@fastify/url-data'
 import fastifySwagger from '@fastify/swagger'
 import fastifyMetrics from 'fastify-metrics'
 import helmet from '@fastify/helmet'
@@ -22,6 +23,7 @@ export async function createApp (basePath) {
     connectionTimeout: 30000
   })
   await app.register(formBodyPlugin)
+  await app.register(urlDataPlugin)
   await app.register(helmet, {
     contentSecurityPolicy: false,
     crossOriginEmbedderPolicy: false,
diff --git a/src/plugins/serve-files.js b/src/plugins/serve-files.js
index f6b9cb933ce416caf0c6f830c431ab5d6bc52e62..4e64051ef8a2ab557792aa4aad5c18b0006f469a 100644
--- a/src/plugins/serve-files.js
+++ b/src/plugins/serve-files.js
@@ -6,7 +6,7 @@ export default async function serveFilePlugin (fastify, options) {
   fastify.get('*', async (req, reply) => {
     try {
       const version = reply.version
-      const url = req.url.substr((options.prefix || '/').length - 1)
+      const url = req.urlData('path').substr((options.prefix || '/').length - 1)
       const path = url === '/' ? '/index.html' : url
       const { body, headers } = await getFile({ version, path })
 
diff --git a/yarn.lock b/yarn.lock
index 8c8cd2dc9e7236b66bfa0f95d78fee204d518180..df294c73a791dbfd6a13544e86113645c6cda821 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -98,6 +98,14 @@
     openapi-types "^11.0.0"
     rfdc "^1.3.0"
 
+"@fastify/url-data@^5.1.0":
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/@fastify/url-data/-/url-data-5.1.0.tgz#1674b2f93ef877dde79db4f7ccc97eeff15c1d79"
+  integrity sha512-n8mz0FiXOOxFJP5QqoMTmfQ9Ejt56K+o+NzJVoDq6LWRZaA1cn0gfR8u0njuiliBTSgbrGovxz6oOQIOQfmW3w==
+  dependencies:
+    fastify-plugin "^4.0.0"
+    uri-js "^4.2.1"
+
 "@humanwhocodes/config-array@^0.10.4":
   version "0.10.4"
   resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c"
@@ -3319,7 +3327,7 @@ undefsafe@^2.0.5:
   resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"
   integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==
 
-uri-js@^4.2.2:
+uri-js@^4.2.1, uri-js@^4.2.2:
   version "4.4.1"
   resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
   integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==