Możesz mieć większą kontrolę nad brandingiem Dynamic Links, używając własnej domeny zamiast domeny podrzędnej page.link
. Dzięki domenom niestandardowym możesz tworzyć Dynamic Links takie jak te:
https://example.com/link-suffix https://example.com/links/promos/link-suffix https://links.example.com/link-suffix https://ex.amp.le/link-suffix
Część adresu URL przed link-suffix to prefiks URL. Zawiera on zarówno niestandardową domenę Dynamic Link, jak i prefiks ścieżki. Podczas tworzenia Dynamic Links musisz podać prefiks URL.
Aby skonfigurować domenę niestandardową, musisz mieć uprawnienia Edytujący lub Właściciel w projekcie Firebase.
Korzystanie z domeny internetowej do celów Dynamic Links
Możesz używać tej samej domeny dla Dynamic Links i stron internetowych, uniwersalnych linków i linków aplikacji, ale w takim przypadku musisz zadbać o to, aby adresy URL Dynamic Links nie kolidowały z adresami URL stron internetowych. Gdy skonfigurujesz Dynamic Links tak, aby używać określonego prefiksu URL, wszystkie adresy URL rozpoczynające się od tego prefiksu będą traktowane jako Dynamic Links, więc nie możesz używać adresów URL z tym prefiksem do wskazywania zwykłych hostowanych treści.Dynamic Link
Jeśli np. chcesz utworzyć Dynamic Link do zasobu https://example.com/my-resource
(strony internetowej, uniwersalnego linku lub linku aplikacji), nie możesz użyć https://example.com/
jako prefiksu adresu URL Dynamic Links, ponieważ https://example.com/my-resource
zostanie wtedy potraktowany jako Dynamic Link.
Zamiast tego musisz użyć prefiksu adresu URL z inną domeną lub innym prefiksem ścieżki.
Dlatego te długie adresy Dynamic Links (i odpowiednie krótkie linki) nie będą działać zgodnie z oczekiwaniami, ponieważ adresy URL określone przez parametr link
zaczynają się od prefiksu adresu 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
Natomiast te długie adresy Dynamic Links (i odpowiednie krótkie linki) mogą działać, ponieważ ich prefiksy nie kolidują z adresami 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
Konfigurowanie domeny niestandardowej w konsoli Firebase
Zazwyczaj domenę niestandardową można skonfigurować w konsoli Firebase. Do:
Jeśli nie masz skonfigurowanego Firebase Hosting w projekcie, otwórz stronę Hosting konsoli Firebase, kliknij Rozpocznij i przejrzyj instrukcje konfiguracji. Nie musisz w tej chwili wykonywać wskazanych czynności.
Otwórz stronę Dynamic Links w konsoli Firebase.
Jeśli nie korzystasz jeszcze z Dynamic Links, kliknij Rozpocznij. W przeciwnym razie kliknij Dodaj prefiks URL w menu.
Następnie w kreatorze konfiguracji podaj domenę i prefiks ścieżki, których chcesz używać.
Tylko iOS: w pliku
Info.plist
projektu Xcode utwórz klucz o nazwieFirebaseDynamicLinksCustomDomains
i ustaw go jako prefiksy adresów URL Dynamic Links aplikacji. Przykład:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/link</string> <string>https://example.com/promos</string> </array>
Ręczne konfigurowanie domeny niestandardowej
W niektórych sytuacjach, np. gdy masz już domenę niestandardową skonfigurowaną dla Dynamic Links i chcesz dodać kolejną domenę lub gdy dodajesz domenę, która jest już połączona z witryną Hosting, musisz skonfigurować domenę niestandardową ręcznie.
Aby to zrobić:
Połącz domenę z Firebase Hosting, jeśli nie zostało to jeszcze zrobione.
Konfigurowanie domeny za pomocą usługi Firebase Hosting obejmuje utworzenie pliku konfiguracji
firebase.json
w lokalnym katalogu projektu.Zaktualizuj interfejs wiersza poleceń Firebase do najnowszej wersji (6.5.0 lub nowszej).
Skonfiguruj witrynę Hosting pod kątem Dynamic Links w pliku
firebase.json
projektu. Jeśli Twój projekt obejmuje wiele witryn, pamiętaj, aby skonfigurować witrynę połączoną z domeną, której chcesz użyć.Ustaw
appAssociation
naAUTO
. Dzięki temu Hosting dynamicznie generuje plikiassetlinks.json
iapple-app-site-association
, gdy zostaną o to poproszone.Określ prefiksy ścieżek, których chcesz używać w przypadku Dynamic Links, ustawiając wartość
dynamicLinks
w regułach przekształcania natrue
. Żądania dotyczące tych ścieżek są przekierowywane do Dynamic Links.W odróżnieniu od reguł, które przepisują ścieżki na adresy URL, Dynamic Linkreguły przepisywania nie mogą zawierać wyrażeń regularnych.
Jeśli masz w witrynie kilka reguł przepisywania, pamiętaj, żeHosting wykonuje pierwszą regułę przepisywania, która pasuje do żądania.
Przykład:
"hosting": { // ... "appAssociation": "AUTO", "rewrites": [ { "source": "/promos/**", "dynamicLinks": true }, { "source": "/links/share/**", "dynamicLinks": true } ] }
Dzięki tej konfiguracji możesz tworzyć Dynamic Links z prefiksami adresów URL, takimi jak te:
https://your-domain/promos/link-suffix https://your-domain/links/share/link-suffix
Jeśli używasz tej domeny tylko do Dynamic Links, możesz użyć ścieżki źródłowej
/**
, aby utworzyć Dynamic Links bez prefiksu ścieżki:{ "source": "/**", "dynamicLinks": true }
Za pomocą powyższej reguły możesz utworzyć Dynamic Links w taki sposób:
https://your-domain/link-suffix
Wprowadź zmiany konfiguracji Hosting:
firebase deploy --only hosting
(opcjonalnie) za pomocą interfejsu Hosting API REST możesz sprawdzić wdrożone treści
firebase.json
.Tylko iOS: w pliku
Info.plist
projektu Xcode utwórz klucz o nazwieFirebaseDynamicLinksCustomDomains
i ustaw go jako prefiksy adresów URL Dynamic Links aplikacji. Przykład:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/promos</string> <string>https://example.com/links/share</string> </array>
Kolejność priorytetów w przypadku Dynamic Links i Hosting
W przypadku Dynamic Links należy zwrócić szczególną uwagę na kolejność priorytetów hostingu.
- Upewnij się, że prefiks URL-a Dynamic Links nie jest w konflikcie z konfiguracjami hostingu o wyższym priorytecie (np. hostowane treści statyczne mają zawsze wyższy priorytet niż przekierowania).
- W atrybucie
rewrites
odpowiedź Hosting będzie przestrzegać reguły określonej przez pierwszy wzór globusource
, który obejmuje żądaną ścieżkę.
Jeśli na przykład skonfigurujesz Dynamic Link dla your-domain/source-path/link-suffix
, ale masz też treści statyczne na stronie your-domain/source-path/index.html
, treści statyczne mają pierwszeństwo. Użytkownik końcowy zobaczy index.html
, a nie Dynamic Link. Podobnie, jeśli w miejscu your-domain/source-path/link-suffix
masz treści statyczne, użytkownik końcowy zobaczy treści statyczne, a nie Dynamic Link.
Jeśli chcesz używać tego samego brandingu w przypadku usług Dynamic Links i Hosting, rozważ wybranie jednej z tych opcji prefiksu adresu URL Dynamic Links:
Ustaw atrybut
source
tak, aby pasował do prefiksu ścieżki. Jeśli na przykład masz domenę niestandardowąexample.com
, Twoja reguła przekierowania może wyglądać tak:// Domain is example.com "rewrites": [ { "source": "/links/**", // Dynamic Links start with "https://example.com/links/" "dynamicLinks": true } ]
Skonfiguruj subdomenę, której chcesz używać w przypadku atrybutu Dynamic Links, a następnie skonfiguruj atrybut
source
tak, aby pasował do tej subdomeny. Jeśli na przykład masz subdomenęlinks.example.com
, reguła przekierowania może wyglądać tak:// Domain is links.example.com "rewrites": [ { "source": "/**", // Dynamic Links start with "https://links.example.com/" "dynamicLinks": true } ]