Puede tener un mayor control sobre la marca de sus vínculos dinámicos utilizando su propio dominio en lugar de un subdominio page.link
. Con dominios personalizados, puede crear enlaces dinámicos como en los siguientes ejemplos:
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 parte de la URL antes link-suffix se denomina prefijo de URL y contiene tanto su dominio de Dynamic Link personalizado como un prefijo de ruta. Deberá proporcionar un prefijo de URL cuando cree enlaces dinámicos.
Configurar un dominio personalizado requiere permiso de Editor o Propietario en su proyecto de Firebase.
Usando su dominio web para enlaces dinámicos
Puede utilizar el mismo dominio para sus vínculos dinámicos y sus páginas web, vínculos universales y vínculos de aplicaciones, pero si lo hace, debe tener cuidado de que las URL de sus vínculos dinámicos no entren en conflicto con las URL de su web. Cuando configura Dynamic Links para usar un prefijo de URL particular, todas las URL que comienzan con ese prefijo se tratan como Dynamic Links, por lo que no puede usar URL con ese prefijo para apuntar a contenido alojado normal.
Por ejemplo, si desea crear un enlace dinámico al recurso https://example.com/my-resource
(una página web, un enlace universal o un enlace de aplicación), no puede usar https://example.com/
como prefijo de URL de vínculos dinámicos, porque hacerlo haría que https://example.com/my-resource
se tratara como un vínculo dinámico. En su lugar, debe utilizar un prefijo de URL con un dominio diferente o un prefijo de ruta diferente.
Por lo tanto, los siguientes enlaces dinámicos de formato largo (y enlaces cortos equivalentes) no funcionarán según lo previsto porque las URL especificadas por el parámetro link
comienzan con el prefijo de URL del enlace dinámico, https://example.com/
:
https://example.com/?link=https://example.com/my-resource https://example.com/?link=https://example.com/resources/my-resource
Pero los siguientes enlaces dinámicos de formato largo (y enlaces cortos equivalentes) pueden funcionar porque los prefijos de URL no entran en conflicto con las URL de los 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
Configurar un dominio personalizado en Firebase console
Por lo general, puedes configurar un dominio personalizado completamente en Firebase console. Para hacerlo:
Si no has configurado Firebase Hosting para tu proyecto, abre la página Hosting de Firebase console, haz clic en Comenzar y sigue las instrucciones de configuración. No es necesario que completes los pasos indicados en este momento.
Abra la página de vínculos dinámicos de Firebase console.
Si no ha utilizado Dynamic Links antes, haga clic en Comenzar . De lo contrario, haga clic en Agregar prefijo de URL en el menú desplegable.
Luego, complete el asistente de configuración, especificando el dominio y el prefijo de ruta que desea utilizar cuando se le solicite.
Solo iOS : en el archivo
Info.plist
de su proyecto Xcode, cree una clave llamadaFirebaseDynamicLinksCustomDomains
y configúrela con los prefijos URL de Dynamic Links de su aplicación. Por ejemplo:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/link</string> <string>https://example.com/promos</string> </array>
Configurar un dominio personalizado manualmente
En algunas situaciones, como cuando ya tiene un dominio personalizado configurado para Dynamic Links y desea agregar otro dominio, o cuando agrega un dominio que ya está conectado a un sitio de Hosting, debe configurar su dominio personalizado manualmente.
Para hacerlo:
Conecte su dominio a Firebase Hosting si aún no lo ha hecho.
Configurar su dominio con Firebase Hosting incluye la creación del archivo de configuración
firebase.json
en el directorio de su proyecto local.Actualice a la última versión de Firebase CLI (v6.5.0 o posterior).
Configure su sitio de hosting para enlaces dinámicos en el archivo
firebase.json
de su proyecto. Si su proyecto tiene varios sitios, asegúrese de configurar el sitio conectado al dominio que desea utilizar.Establezca
appAssociation
enAUTO
. Con esta configuración, Hosting genera dinámicamente archivosassetlinks.json
yapple-app-site-association
cuando se solicitan.Especifique los prefijos de ruta que desea utilizar para los vínculos dinámicos estableciendo reglas de reescritura con
dynamicLinks
establecidos entrue
. Las solicitudes a estas rutas se envían mediante proxy a Dynamic Links.A diferencia de las reglas que reescriben rutas a direcciones URL, las reglas de reescritura de vínculos dinámicos no pueden contener expresiones regulares.
Si tiene varias reglas de reescritura para su sitio, tenga en cuenta que Hosting ejecuta la primera regla de reescritura que coincida con la solicitud.
Por ejemplo:
"hosting": { // ... "appAssociation": "AUTO", "rewrites": [ { "source": "/promos/**", "dynamicLinks": true }, { "source": "/links/share/**", "dynamicLinks": true } ] }
Con la configuración anterior, puede crear enlaces dinámicos con prefijos de URL como los siguientes ejemplos:
https://your-domain/promos/link-suffix https://your-domain/links/share/link-suffix
Si usa este dominio solo para vínculos dinámicos, puede usar una ruta de origen de
/**
para crear vínculos dinámicos sin prefijo de ruta:{ "source": "/**", "dynamicLinks": true }
Con la regla anterior, puede crear enlaces dinámicos como el siguiente ejemplo:
https://your-domain/link-suffix
Implemente sus cambios de configuración de hosting:
firebase deploy --only hosting
(opcional) Puede verificar el contenido
firebase.json
implementado utilizando la API REST de Hosting .Solo iOS : en el archivo
Info.plist
de su proyecto Xcode, cree una clave llamadaFirebaseDynamicLinksCustomDomains
y configúrela con los prefijos URL de Dynamic Links de su aplicación. Por ejemplo:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/promos</string> <string>https://example.com/links/share</string> </array>
Orden de prioridad para Enlaces Dinámicos y Hosting
Para los enlaces dinámicos, tenga especial cuidado con el orden de prioridad del alojamiento .
- Asegúrese de que el prefijo de URL de Dynamic Links no entre en conflicto con configuraciones de alojamiento de mayor prioridad (por ejemplo, el contenido estático alojado siempre tiene prioridad sobre las reescrituras).
- Dentro del atributo
rewrites
, la respuesta de Hosting obedecerá la regla especificada por el primer globsource
que captura la ruta solicitada .
Por ejemplo, si configura un enlace dinámico para your-domain / source-path / link-suffix
pero también tiene contenido estático en your-domain / source-path /index.html
, el contenido estático tiene prioridad. Un usuario final verá index.html
en lugar del enlace dinámico. De manera similar, si tiene contenido estático en your-domain / source-path / link-suffix
, el usuario final verá el contenido estático en lugar del enlace dinámico.
Si desea utilizar la misma marca tanto para Dynamic Links como para Hosting, considere una de las siguientes opciones para su prefijo URL de Dynamic Links:
Configure su atributo
source
para que coincida con un prefijo de ruta. Por ejemplo, si tiene un dominio personalizado deexample.com
, su regla de reescritura podría ser:// Domain is example.com "rewrites": [ { "source": "/links/**", // Dynamic Links start with "https://example.com/links/" "dynamicLinks": true } ]
Configure un subdominio para usarlo con enlaces dinámicos, luego configure su atributo
source
para que coincida con ese subdominio. Por ejemplo, si tiene un subdominio delinks.example.com
, su regla de reescritura podría ser:// Domain is links.example.com "rewrites": [ { "source": "/**", // Dynamic Links start with "https://links.example.com/" "dynamicLinks": true } ]