Вы можете иметь больший контроль над брендингом ваших Dynamic Links , используя собственный домен вместо поддомена page.link
. С помощью пользовательских доменов вы можете создавать Dynamic Links , как в следующих примерах:
https://example.com/link-suffix https://example.com/links/promos/link-suffix https://links.example.com/link-suffix https://ex.amp.le/link-suffix
Часть URL перед link-suffix называется префиксом URL и содержит как ваш пользовательский домен Dynamic Link , так и префикс пути. Вам нужно будет указать префикс URL при создании Dynamic Links .
Для настройки пользовательского домена требуются права редактора или владельца вашего проекта Firebase.
Использование вашего веб-домена для Dynamic Links
Вы можете использовать один и тот же домен для своих Dynamic Links и веб-страниц, универсальных ссылок и ссылок приложений, но если вы это сделаете, вы должны позаботиться о том, чтобы ваши Dynamic Link не конфликтовали с вашими веб-URL-адресами. Когда вы настраиваете Dynamic Links для использования определенного префикса URL-адреса, все URL-адреса, начинающиеся с этого префикса, рассматриваются как Dynamic Links , поэтому вы не можете использовать URL-адреса с этим префиксом для указания на обычный размещенный контент.
Например, если вы хотите создать Dynamic Link на ресурс https://example.com/my-resource
(веб-страницу, универсальную ссылку или ссылку приложения), вы не можете использовать https://example.com/
в качестве префикса URL-адреса Dynamic Links , поскольку это приведет к тому, что https://example.com/my-resource
будет рассматриваться как Dynamic Link . Вместо этого вы должны использовать префикс URL-адреса либо с другим доменом, либо с другим префиксом пути.
Таким образом, следующие длинные Dynamic Links (и эквивалентные короткие ссылки) не будут работать должным образом, поскольку URL-адреса, указанные параметром link
начинаются с префикса URL-адреса Dynamic Link , https://example.com/
:
https://example.com/?link=https://example.com/my-resource https://example.com/?link=https://example.com/resources/my-resource
Но следующие длинные Dynamic Links (и эквивалентные короткие ссылки) могут работать, поскольку префиксы URL-адресов не конфликтуют с 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
Настройте пользовательский домен в консоли Firebase
Обычно вы можете полностью настроить пользовательский домен в консоли Firebase . Для этого:
Если вы не настроили Firebase Hosting для своего проекта, откройте страницу Hosting консоли Firebase , нажмите Get Started и пройдите по инструкциям по настройке. Вам не нужно выполнять указанные шаги на данном этапе.
Откройте страницу Dynamic Links консоли Firebase .
Если вы ранее не использовали Dynamic Links , нажмите Get Started . В противном случае нажмите Add URL prefix в раскрывающемся меню.
Затем завершите работу мастера настройки, указав при появлении соответствующего запроса домен и префикс пути, которые вы хотите использовать.
Только для iOS : в файле
Info.plist
вашего проекта Xcode создайте ключ с именемFirebaseDynamicLinksCustomDomains
и установите его для префиксов URL-адресов Dynamic Links вашего приложения. Например:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/link</string> <string>https://example.com/promos</string> </array>
Настройте пользовательский домен вручную
В некоторых ситуациях, например, когда у вас уже есть настроенный для Dynamic Links пользовательский домен и вы хотите добавить еще один домен, или когда вы добавляете домен, уже подключенный к сайту Hosting , вам придется настроить пользовательский домен вручную.
Для этого:
Подключите свой домен к Firebase Hosting если вы еще этого не сделали.
Настройка домена с помощью Firebase Hosting включает создание файла конфигурации
firebase.json
в локальном каталоге проекта.Обновите Firebase CLI до последней версии (v6.5.0 или более поздней).
Настройте свой Hosting сайт для Dynamic Links в файле
firebase.json
вашего проекта. Если в вашем проекте несколько сайтов, обязательно настройте сайт, подключенный к домену, который вы хотите использовать.Установите
appAssociation
наAUTO
. С этой настройкой Hosting динамически генерирует файлыassetlinks.json
иapple-app-site-association
при их запросе.Укажите префиксы путей, которые вы хотите использовать для Dynamic Links , установив правила перезаписи с
dynamicLinks
, установленными наtrue
. Запросы к этим путям проксируются в Dynamic Links .В отличие от правил, которые переписывают пути в URL-адреса, правила перезаписи Dynamic Link не могут содержать регулярные выражения.
Если на вашем сайте установлено несколько правил перезаписи, учтите, что Hosting выполняет первое правило перезаписи, которое соответствует запросу.
Например:
"hosting": { // ... "appAssociation": "AUTO", "rewrites": [ { "source": "/promos/**", "dynamicLinks": true }, { "source": "/links/share/**", "dynamicLinks": true } ] }
Используя указанную выше конфигурацию, вы можете создавать Dynamic Links с префиксами URL, как в следующих примерах:
https://your-domain/promos/link-suffix https://your-domain/links/share/link-suffix
Если вы используете этот домен только для Dynamic Links , вы можете использовать исходный путь
/**
для создания Dynamic Links без префикса пути:{ "source": "/**", "dynamicLinks": true }
Используя приведенное выше правило, вы можете создавать Dynamic Links как в следующем примере:
https://your-domain/link-suffix
Разверните изменения конфигурации Hosting :
firebase deploy --only hosting
(необязательно) Вы можете проверить развернутое содержимое
firebase.json
с помощью REST API Hosting .Только для iOS : в файле
Info.plist
вашего проекта Xcode создайте ключ с именемFirebaseDynamicLinksCustomDomains
и установите его для префиксов URL-адресов Dynamic Links вашего приложения. Например:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/promos</string> <string>https://example.com/links/share</string> </array>
Приоритетный порядок для Dynamic Links и Hosting
Для Dynamic Links обратите особое внимание на порядок приоритетов хостинга .
- Убедитесь, что префикс URL-адреса Dynamic Links не конфликтует с конфигурациями хостинга с более высоким приоритетом (например, размещенный статический контент всегда имеет приоритет над перезаписями).
- В атрибуте
rewrites
ответ Hosting будет подчиняться правилу, указанному первымsource
глобальным массивом, который фиксирует запрошенный путь .
Например, если вы настроили Dynamic Link для your-domain / source-path / link-suffix
но у вас также есть статический контент в your-domain / source-path /index.html
, статический контент имеет приоритет. Конечный пользователь увидит index.html
, а не Dynamic Link . Аналогично, если у вас есть статический контент в your-domain / source-path / link-suffix
, конечный пользователь увидит статический контент, а не Dynamic Link .
Если вы хотите использовать один и тот же брендинг для Dynamic Links и Hosting , рассмотрите один из следующих вариантов для префикса URL-адреса Dynamic Links :
Установите свой атрибут
source
для соответствия префиксу пути. Например, если у вас есть пользовательский доменexample.com
, ваше правило перезаписи может быть следующим:// Domain is example.com "rewrites": [ { "source": "/links/**", // Dynamic Links start with "https://example.com/links/" "dynamicLinks": true } ]
Настройте поддомен для использования в Dynamic Links , затем установите атрибут
source
, соответствующий этому поддомену. Например, если у вас есть поддоменlinks.example.com
, ваше правило перезаписи может быть следующим:// Domain is links.example.com "rewrites": [ { "source": "/**", // Dynamic Links start with "https://links.example.com/" "dynamicLinks": true } ]