Vous pouvez avoir un meilleur contrôle sur la marque de vos Dynamic Links en utilisant votre propre domaine au lieu d'un sous-domaine page.link
. Avec les domaines personnalisés, vous pouvez créer des liens dynamiques comme dans les exemples suivants :
https://example.com/link-suffix https://example.com/links/promos/link-suffix https://links.example.com/link-suffix https://ex.amp.le/link-suffix
La partie de l'URL précédant link-suffix est appelée préfixe d'URL et contient à la fois votre domaine Dynamic Link personnalisé et un préfixe de chemin. Vous devrez fournir un préfixe d'URL lorsque vous créerez des liens dynamiques.
La configuration d'un domaine personnalisé nécessite l'autorisation d'éditeur ou de propriétaire sur votre projet Firebase.
Utiliser votre domaine Web pour les liens dynamiques
Vous pouvez utiliser le même domaine pour vos liens dynamiques et vos pages Web, liens universels et liens d'application, mais si vous le faites, vous devez veiller à ce que vos URL de liens dynamiques n'entrent pas en conflit avec vos URL Web. Lorsque vous configurez Dynamic Links pour utiliser un préfixe d'URL particulier, toutes les URL commençant par ce préfixe sont traitées comme des liens dynamiques. Vous ne pouvez donc pas utiliser d'URL portant ce préfixe pour pointer vers du contenu hébergé ordinaire.
Par exemple, si vous souhaitez créer un lien dynamique vers la ressource https://example.com/my-resource
(une page Web, un lien universel ou un lien d'application), vous ne pouvez pas utiliser https://example.com/
comme préfixe d'URL de liens dynamiques, car cela entraînerait le traitement https://example.com/my-resource
comme un lien dynamique. Au lieu de cela, vous devez utiliser un préfixe d'URL avec un domaine différent ou un préfixe de chemin différent.
Ainsi, les liens dynamiques longs suivants (et les liens courts équivalents) ne fonctionneront pas comme prévu car les URL spécifiées par le paramètre link
commencent par le préfixe d'URL de lien dynamique, https://example.com/
:
https://example.com/?link=https://example.com/my-resource https://example.com/?link=https://example.com/resources/my-resource
Mais les liens dynamiques longs suivants (et les liens courts équivalents) peuvent fonctionner, car les préfixes d'URL n'entrent pas en conflit avec les URL link
:
https://link.example.com/?link=https://example.com/my-resource https://example.com/links/?link=https://example.com/my-resource https://ex.amp.le/?link=https://example.com/my-resource
Configurer un domaine personnalisé dans la console Firebase
Vous pouvez généralement configurer entièrement un domaine personnalisé dans la console Firebase. Faire cela:
Si vous n'avez pas configuré Firebase Hosting pour votre projet, ouvrez la page Hébergement de la console Firebase, cliquez sur Commencer et suivez les instructions de configuration. Vous n'êtes pas obligé de suivre les étapes indiquées pour le moment.
Ouvrez la page Liens dynamiques de la console Firebase.
Si vous n'avez jamais utilisé Dynamic Links auparavant, cliquez sur Commencer . Sinon, cliquez sur Ajouter un préfixe d'URL dans le menu déroulant.
Ensuite, terminez l'assistant de configuration en spécifiant le domaine et le préfixe de chemin que vous souhaitez utiliser lorsque vous y êtes invité.
iOS uniquement : dans le fichier
Info.plist
de votre projet Xcode, créez une clé appeléeFirebaseDynamicLinksCustomDomains
et définissez-la sur les préfixes d'URL Dynamic Links de votre application. Par exemple:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/link</string> <string>https://example.com/promos</string> </array>
Configurer manuellement un domaine personnalisé
Dans certaines situations, par exemple lorsque vous disposez déjà d'un domaine personnalisé configuré pour Dynamic Links et que vous souhaitez ajouter un autre domaine, ou lorsque vous ajoutez un domaine déjà connecté à un site d'hébergement, vous devez configurer votre domaine personnalisé manuellement.
Faire cela:
Connectez votre domaine à Firebase Hosting si vous ne l'avez pas déjà fait.
La configuration de votre domaine avec Firebase Hosting inclut la création du fichier de configuration
firebase.json
dans le répertoire de votre projet local.Mettez à jour vers la dernière version de Firebase CLI (v6.5.0 ou version ultérieure).
Configurez votre site d'hébergement pour Dynamic Links dans le fichier
firebase.json
de votre projet. Si votre projet comporte plusieurs sites, veillez à configurer le site connecté au domaine que vous souhaitez utiliser.Définissez
appAssociation
surAUTO
. Avec ce paramètre, l'hébergement génère dynamiquement les fichiersassetlinks.json
etapple-app-site-association
lorsqu'ils sont demandés.Spécifiez les préfixes de chemin que vous souhaitez utiliser pour les liens dynamiques en définissant des règles de réécriture avec
dynamicLinks
défini surtrue
. Les requêtes vers ces chemins sont transmises par proxy à Dynamic Links.Contrairement aux règles qui réécrivent les chemins d’accès aux URL, les règles de réécriture Dynamic Link ne peuvent pas contenir d’expressions régulières.
Si vous disposez de plusieurs règles de réécriture pour votre site, sachez que l'hébergement exécute la première règle de réécriture qui correspond à la requête.
Par exemple:
"hosting": { // ... "appAssociation": "AUTO", "rewrites": [ { "source": "/promos/**", "dynamicLinks": true }, { "source": "/links/share/**", "dynamicLinks": true } ] }
Avec la configuration ci-dessus, vous pouvez créer des liens dynamiques avec des préfixes d'URL comme dans les exemples suivants :
https://your-domain/promos/link-suffix https://your-domain/links/share/link-suffix
Si vous utilisez ce domaine uniquement pour Dynamic Links, vous pouvez utiliser un chemin source de
/**
pour créer des Dynamic Links sans préfixe de chemin :{ "source": "/**", "dynamicLinks": true }
Avec la règle ci-dessus, vous pouvez créer des liens dynamiques comme dans l'exemple suivant :
https://your-domain/link-suffix
Déployez vos modifications de configuration d'hébergement :
firebase deploy --only hosting
(facultatif) Vous pouvez vérifier le contenu
firebase.json
déployé à l'aide de l' API REST d'hébergement .iOS uniquement : dans le fichier
Info.plist
de votre projet Xcode, créez une clé appeléeFirebaseDynamicLinksCustomDomains
et définissez-la sur les préfixes d'URL Dynamic Links de votre application. Par exemple:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/promos</string> <string>https://example.com/links/share</string> </array>
Ordre de priorité pour les liens dynamiques et l'hébergement
Pour Dynamic Links, soyez particulièrement attentif à l’ordre de priorité de l’hébergement .
- Assurez-vous que votre préfixe d'URL Dynamic Links n'entre pas en conflit avec des configurations d'hébergement de priorité plus élevée (par exemple, le contenu statique hébergé a toujours la priorité sur les réécritures).
- Dans l'attribut
rewrites
, la réponse d'hébergement obéira à la règle spécifiée par le premier globsource
qui capture le chemin demandé .
Par exemple, si vous configurez un lien dynamique pour your-domain / source-path / link-suffix
mais que vous avez également du contenu statique sur your-domain / source-path /index.html
, le contenu statique est prioritaire. Un utilisateur final verra index.html
plutôt que le lien dynamique. De même, si vous avez du contenu statique sur your-domain / source-path / link-suffix
, l'utilisateur final verra le contenu statique plutôt que le lien dynamique.
Si vous souhaitez utiliser la même marque pour Dynamic Links et l'hébergement, envisagez l'une des options suivantes pour votre préfixe d'URL Dynamic Links :
Définissez votre attribut
source
pour qu'il corresponde à un préfixe de chemin. Par exemple, si vous disposez d'un domaine personnaliséexample.com
, votre règle de réécriture pourrait être :// Domain is example.com "rewrites": [ { "source": "/links/**", // Dynamic Links start with "https://example.com/links/" "dynamicLinks": true } ]
Configurez un sous-domaine à utiliser pour Dynamic Links, puis définissez votre attribut
source
pour qu'il corresponde à ce sous-domaine. Par exemple, si vous disposez d'un sous-domaine delinks.example.com
, votre règle de réécriture pourrait être :// Domain is links.example.com "rewrites": [ { "source": "/**", // Dynamic Links start with "https://links.example.com/" "dynamicLinks": true } ]