> ## Documentation Index
> Fetch the complete documentation index at: https://adminroletesting-justin-client-exports.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Vercel

> Configurez les règles de réécriture Vercel pour servir votre documentation Mintlify sur un sous-chemin de votre domaine via vercel.json, pas à pas.

export const VercelJsonGenerator = () => {
  const [subdomain, setSubdomain] = useState('[SUBDOMAIN]');
  const [subpath, setSubpath] = useState('[SUBPATH]');
  const vercelConfig = {
    rewrites: [{
      source: "/_mintlify/:path*",
      destination: `https://${subdomain}.mintlify.site/_mintlify/:path*`
    }, {
      source: "/api/request",
      destination: `https://${subdomain}.mintlify.site/_mintlify/api/request`
    }, {
      source: `/${subpath}`,
      destination: `https://${subdomain}.mintlify.site/${subpath}`
    }, {
      source: `/${subpath}/llms.txt`,
      destination: `https://${subdomain}.mintlify.site/llms.txt`
    }, {
      source: `/${subpath}/llms-full.txt`,
      destination: `https://${subdomain}.mintlify.site/llms-full.txt`
    }, {
      source: `/${subpath}/sitemap.xml`,
      destination: `https://${subdomain}.mintlify.site/sitemap.xml`
    }, {
      source: `/${subpath}/robots.txt`,
      destination: `https://${subdomain}.mintlify.site/robots.txt`
    }, {
      source: `/${subpath}/mcp`,
      destination: `https://${subdomain}.mintlify.site/mcp`
    }, {
      source: `/${subpath}/:path*`,
      destination: `https://${subdomain}.mintlify.site/${subpath}/:path*`
    }, {
      source: "/mintlify-assets/:path+",
      destination: `https://${subdomain}.mintlify.site/mintlify-assets/:path+`
    }]
  };
  const copyToClipboard = () => {
    navigator.clipboard.writeText(JSON.stringify(vercelConfig, null, 2)).then(() => {
      console.log('Copied config to clipboard!');
    }).catch(err => {
      console.error("Failed to copy: ", err);
    });
  };
  return <div className="p-4 border dark:border-white/10 rounded-2xl not-prose space-y-4">
      <div className="space-y-4">
        <div>
          <label className="block text-sm text-zinc-950/70 dark:text-white/70 mb-1">
            Subdomain
          </label>
          <input type="text" value={subdomain} onChange={e => setSubdomain(e.target.value)} placeholder="your-subdomain" className="w-full p-1 text-sm rounded border dark:border-white/10 bg-transparent" />
        </div>
        <div>
          <label className="block text-sm text-zinc-950/70 dark:text-white/70 mb-1">
            Subpath
          </label>
          <input type="text" value={subpath} onChange={e => setSubpath(e.target.value)} placeholder="docs" className="w-full p-1 text-sm rounded border dark:border-white/10 bg-transparent" />
        </div>
      </div>
      <div className="relative">
        <button onClick={copyToClipboard} className="absolute top-2 right-2 p-2 rounded-lg transition-all duration-200 group">
          <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg" className="w-4 h-4 dark:text-white/60 text-gray-400 group-hover:text-gray-500 dark:group-hover:text-white/60 transition-colors">
            <path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"></path>
            <path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"></path>
          </svg>
          <span className="absolute top-9 left-1/2 transform -translate-x-1/2 bg-primary text-white text-xs px-1.5 py-0.5 rounded-lg opacity-0 group-hover:opacity-100 transition-opacity duration-200 whitespace-nowrap">
            Copy
          </span>
        </button>
        <pre className="p-4 rounded-lg overflow-auto text-xs border dark:border-white/10">
          <code>{JSON.stringify(vercelConfig, null, 2)}</code>
        </pre>
      </div>
    </div>;
};

Configurez votre fichier `vercel.json` pour acheminer les requêtes de votre domaine principal vers votre documentation sur un sous-chemin.

<div id="verceljson-file">
  ## Fichier vercel.json
</div>

Le fichier `vercel.json` définit la façon dont votre projet est construit et déployé. Il se trouve à la racine de votre projet et contrôle divers aspects de votre déploiement, notamment le routage, les redirections, les en-têtes et les paramètres de build.

Nous utilisons la configuration `rewrites` dans votre fichier `vercel.json` pour faire transiter les requêtes de votre domaine principal vers votre documentation via un proxy.

Les réécritures (`rewrites`) font correspondre les requêtes entrantes à différentes destinations sans modifier l'URL dans le navigateur. Quand quelqu’un visite `yoursite.com/docs`, Vercel récupère en interne le contenu depuis `your-subdomain.mintlify.site/docs`, mais l’utilisateur voit toujours `yoursite.com/docs` dans son navigateur. Cela diffère des redirections, qui envoient les utilisateurs vers une URL complètement différente.

<div id="configuration">
  ## Configuration
</div>

<div id="host-at-docs-subpath">
  ### Héberger sur le sous-chemin `/docs`
</div>

1. Accédez à la page [Custom domain setup](https://dashboard.mintlify.com/settings/deployment/custom-domain) dans votre Dashboard.
2. Cliquez sur l’interrupteur **Host at `/docs`** pour l’activer.

   <Frame>
     <img alt="Capture d’écran de la page Custom domain setup. L’interrupteur Host at `/docs` est activé et mis en évidence par un rectangle orange." src="https://mintcdn.com/adminroletesting-justin-client-exports/KkC7pYtcngy_MKHr/images/subpath/toggle-light.png?fit=max&auto=format&n=KkC7pYtcngy_MKHr&q=85&s=19ccb11326e81031f5edd1247121fa94" className="block dark:hidden" width="1438" height="298" data-path="images/subpath/toggle-light.png" />

     <img alt="Capture d’écran de la page Custom domain setup. L’interrupteur Host at `/docs` est activé et mis en évidence par un rectangle orange." src="https://mintcdn.com/adminroletesting-justin-client-exports/KkC7pYtcngy_MKHr/images/subpath/toggle-dark.png?fit=max&auto=format&n=KkC7pYtcngy_MKHr&q=85&s=31b89cd795edaa78787e89bbeea9afd1" className="hidden dark:block" width="1440" height="300" data-path="images/subpath/toggle-dark.png" />
   </Frame>
3. Saisissez votre domaine.
4. Sélectionnez **Add domain**.
5. Ajoutez les réécritures suivantes à votre fichier `vercel.json`. Remplacez `[subdomain]` par votre sous-domaine, que vous trouverez à la fin de l’URL de votre Dashboard. Par exemple, `dashboard.mintlify.com/your-organization/your-subdomain` possède un identifiant de domaine `your-subdomain`.

   ```json theme={null}
   {
     "rewrites": [
       {
         "source": "/docs",
         "destination": "https://[subdomain].mintlify.site/docs"
       },
       {
         "source": "/docs/:match*",
         "destination": "https://[subdomain].mintlify.site/docs/:match*"
       }
     ]
   }
   ```

La configuration `rewrites` fait correspondre le sous-chemin `/docs` sur votre domaine au sous-chemin `/docs` sur votre documentation.

* **`source`** : Le modèle de chemin sur votre domaine qui déclenche la réécriture.
* **`destination`** : L’endroit où la requête doit être transmise en proxy.
* **`:match*`** : Un joker qui capture tous les segments de chemin après votre sous-chemin.

Pour plus d’informations, consultez [Configuring projects with vercel.json: Rewrites](https://vercel.com/docs/projects/project-configuration#rewrites) dans la documentation Vercel.

<div id="host-at-custom-subpath">
  ### Héberger sur un sous-chemin personnalisé
</div>

Pour utiliser un sous-chemin personnalisé (tout chemin autre que `/docs`), vous devez organiser vos fichiers de documentation dans votre référentiel pour qu'ils correspondent à la structure de votre sous-chemin. Par exemple, si votre documentation est hébergée à l'adresse `yoursite.com/help`, vos fichiers de documentation doivent se trouver dans un répertoire `help/`.

Utilisez le générateur ci-dessous pour créer votre configuration de réécritures. Ajoutez les réécritures à votre fichier `vercel.json`.

<VercelJsonGenerator />
