How can I host an AASA JSON file on my Webflow website for iOS Universal links?

TL;DR
  • Apple requires the AASA file to be served at https://yourdomain.com/.well-known/apple-app-site-association without redirects and with Content-Type: application/json.  
  • Since Webflow can't host files at this path, use a proxy solution like Cloudflare Workers, AWS Lambda@Edge, or a custom subdomain with proper configuration to serve the static AASA file correctly.

To enable iOS Universal Links, you need to host an Apple App Site Association (AASA) JSON file at a specific location: https://yourdomain.com/.well-known/apple-app-site-association. Webflow does not natively support hosting static files at this required path, but you can implement a workaround.

1. Understand the Hosting Requirement

  • Apple requires the AASA file to be served without redirectswithout authentication, and from the root domain at the exact path: /.well-known/apple-app-site-association.
  • The file must be served over HTTPS with a Content-Type: application/json (not application/json; charset=utf-8 or text/plain).

2. Limitations of Webflow

  • Webflow does not allow uploading files to arbitrary paths like /.well-known/.
  • Any file uploaded via the Webflow CMS or Assets uploader will be hosted at a system-generated path, not at the root.

3. Workaround Using a Proxy or Edge Redirect

To meet Apple’s requirements, you need to use a proxy server or CDN edge function—here are options:

  • Option A: Use Cloudflare Workers (Recommended)
  • Point your domain’s DNS to Cloudflare.
  • Deploy a worker that intercepts requests to /.well-known/apple-app-site-association and serves the static AASA JSON.
  • Example logic: if request == /.well-known/..., return the static JSON file with correct headers; else passthrough to your Webflow site.

  • Option B: Use AWS CloudFront and Lambda@Edge
  • Set up CloudFront in front of your Webflow site.
  • Use Lambda@Edge to intercept /.well-known/apple-app-site-association and return the file from S3 or inline.

  • Option C: Host the AASA File on Another Subdomain
  • Some apps allow you to host the AASA file on a subdomain like links.yourdomain.com, as long as the subdomain is registered in your app’s Associated Domains entitlement.
  • In that case, you can use Netlify or Vercel to host just the AASA file.

4. Steps to Use Cloudflare Workers

  • Connect your domain to Cloudflare and configure DNS to point to Webflow (A records: 75.2.70.75, 99.83.190.102).
  • Install Wrangler CLI to deploy a worker: npm install -g wrangler
  • Write a worker script that returns the AASA JSON on the right path with the correct headers.
  • Publish the worker and set a route for https://yourdomain.com/.well-known/apple-app-site-association.

Summary

Webflow cannot natively host the AASA file at the required /.well-known/ path. To enable Universal Links, host the file externally—preferably using Cloudflare Workers or similar edge functions—and serve it directly with no redirects and correct headers.

Rate this answer

Other Webflow Questions