Możesz mieć większą kontrolę nad marką swoich linków dynamicznych, używając własnej domeny zamiast subdomeny page.link
. Dzięki domenom niestandardowym możesz tworzyć linki dynamiczne, jak w poniższych przykładach:
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 znajdująca się przed link-suffix nazywana jest prefiksem adresu URL i zawiera zarówno niestandardową domenę łącza dynamicznego, jak i prefiks ścieżki. Podczas tworzenia linków dynamicznych konieczne będzie podanie prefiksu adresu URL.
Skonfigurowanie domeny niestandardowej wymaga uprawnień redaktora lub właściciela w projekcie Firebase.
Korzystanie z domeny internetowej dla linków dynamicznych
Możesz używać tej samej domeny dla łączy dynamicznych oraz stron internetowych, łączy uniwersalnych i łączy aplikacji, ale jeśli to zrobisz, musisz zadbać o to, aby adresy URL łączy dynamicznych nie kolidowały z adresami URL stron internetowych. Jeśli skonfigurujesz łącza dynamiczne tak, aby korzystały z określonego przedrostka adresu URL, wszystkie adresy URL rozpoczynające się od tego przedrostka będą traktowane jako łącza dynamiczne, zatem nie będzie można używać adresów URL z tym przedrostkiem do wskazywania zwykłej hostowanej zawartości.
Na przykład, jeśli chcesz utworzyć link dynamiczny do zasobu https://example.com/my-resource
(strona internetowa, link uniwersalny lub link do aplikacji), nie możesz użyć https://example.com/
jako przedrostek adresu URL linków dynamicznych, ponieważ spowodowałoby to, że https://example.com/my-resource
byłby traktowany jako link dynamiczny. Zamiast tego należy użyć prefiksu adresu URL z inną domeną lub innym prefiksem ścieżki.
Zatem następujące długie linki dynamiczne (i odpowiadające im krótkie linki) nie będą działać zgodnie z oczekiwaniami, ponieważ adresy URL określone w parametrze link
zaczynają się od prefiksu adresu URL łącza dynamicznego, https://example.com/
:
https://example.com/?link=https://example.com/my-resource https://example.com/?link=https://example.com/resources/my-resource
Jednak następujące długie linki dynamiczne (i równoważne krótkie linki) mogą działać, ponieważ przedrostki adresów URL nie kolidują z adresami 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
Skonfiguruj domenę niestandardową w konsoli Firebase
Zwykle możesz całkowicie skonfigurować domenę niestandardową w konsoli Firebase. Aby to zrobić:
Jeśli nie skonfigurowałeś Hostingu Firebase dla swojego projektu, otwórz stronę Hosting w konsoli Firebase, kliknij Rozpocznij i zapoznaj się z instrukcjami konfiguracji. W tym momencie nie musisz wykonywać wskazanych kroków.
Otwórz stronę Linki dynamiczne w konsoli Firebase.
Jeśli nie korzystałeś wcześniej z łączy dynamicznych, kliknij przycisk Rozpocznij . W przeciwnym razie kliknij opcję Dodaj prefiks adresu URL z menu rozwijanego.
Następnie ukończ pracę kreatora instalacji, określając prefiks domeny i ścieżki, którego chcesz użyć, gdy zostaniesz o to poproszony.
Tylko iOS : w pliku
Info.plist
projektu Xcode utwórz klucz o nazwieFirebaseDynamicLinksCustomDomains
i ustaw go na prefiksy adresów URL łączy dynamicznych aplikacji. Na przykład:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/link</string> <string>https://example.com/promos</string> </array>
Skonfiguruj domenę niestandardową ręcznie
W niektórych sytuacjach, na przykład gdy masz już skonfigurowaną domenę niestandardową dla łączy dynamicznych i chcesz dodać kolejną domenę lub gdy dodajesz domenę już połączoną z witryną hostingową, musisz ręcznie skonfigurować domenę niestandardową.
Aby to zrobić:
Połącz swoją domenę z Hostingiem Firebase, jeśli jeszcze tego nie zrobiłeś.
Konfigurowanie domeny za pomocą Firebase Hosting obejmuje utworzenie pliku konfiguracyjnego
firebase.json
w lokalnym katalogu projektu.Zaktualizuj do najnowszej wersji Firebase CLI (wersja 6.5.0 lub nowsza).
Skonfiguruj swoją witrynę hostingową pod kątem łączy dynamicznych w pliku
firebase.json
swojego projektu. Jeśli Twój projekt ma wiele witryn, pamiętaj o skonfigurowaniu witryny połączonej z domeną, której chcesz używać.Ustaw
appAssociation
naAUTO
. Przy tym ustawieniu Hosting dynamicznie generuje plikiassetlinks.json
i plikiapple-app-site-association
na żądanie.Określ przedrostki ścieżek, których chcesz używać dla łączy dynamicznych, ustawiając reguły przepisywania z
dynamicLinks
ustawioną natrue
. Żądania kierowane do tych ścieżek są przekazywane do łączy dynamicznych.W przeciwieństwie do reguł przepisując ścieżki do adresów URL, reguły przepisywania łącza dynamicznego nie mogą zawierać wyrażeń regularnych.
Jeśli masz wiele reguł przepisywania dla swojej witryny, pamiętaj, że Hosting wykonuje pierwszą regułę przepisywania, która pasuje do żądania.
Na przykład:
"hosting": { // ... "appAssociation": "AUTO", "rewrites": [ { "source": "/promos/**", "dynamicLinks": true }, { "source": "/links/share/**", "dynamicLinks": true } ] }
Dzięki powyższej konfiguracji możesz tworzyć linki dynamiczne z prefiksami adresów URL, jak w poniższych przykładach:
https://your-domain/promos/link-suffix https://your-domain/links/share/link-suffix
Jeśli używasz tej domeny tylko dla łączy dynamicznych, możesz użyć ścieżki źródłowej
/**
, aby utworzyć linki dynamiczne bez przedrostka ścieżki:{ "source": "/**", "dynamicLinks": true }
Dzięki powyższej regule możesz tworzyć linki dynamiczne, jak w poniższym przykładzie:
https://your-domain/link-suffix
Wdróż zmiany w konfiguracji hostingu:
firebase deploy --only hosting
(opcjonalnie) Możesz sprawdzić wdrożoną zawartość
firebase.json
za pomocą interfejsu API REST Hostingu .Tylko iOS : w pliku
Info.plist
projektu Xcode utwórz klucz o nazwieFirebaseDynamicLinksCustomDomains
i ustaw go na prefiksy adresów URL łączy dynamicznych aplikacji. Na przykład:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/promos</string> <string>https://example.com/links/share</string> </array>
Kolejność priorytetów dla linków dynamicznych i hostingu
W przypadku linków dynamicznych należy szczególnie zwrócić uwagę na kolejność priorytetów hostingu .
- Upewnij się, że prefiks adresu URL łączy dynamicznych nie koliduje z konfiguracjami hostingu o wyższym priorytecie (na przykład hostowana zawartość statyczna zawsze ma pierwszeństwo przed ponownym zapisaniem).
- W ramach atrybutu
rewrites
odpowiedź Hostingu będzie zgodna z regułą określoną przez pierwszy globsource
, który przechwytuje żądaną ścieżkę .
Na przykład, jeśli skonfigurujesz łącze dynamiczne dla your-domain / source-path / link-suffix
ale masz także zawartość statyczną w your-domain / source-path /index.html
, treść statyczna ma pierwszeństwo. Użytkownik końcowy zobaczy index.html
zamiast łącza dynamicznego. Podobnie, jeśli masz statyczną treść w your-domain / source-path / link-suffix
, użytkownik końcowy zobaczy treść statyczną, a nie łącze dynamiczne.
Jeśli chcesz używać tej samej marki zarówno w przypadku Linków Dynamicznych, jak i Hostingu, rozważ jedną z następujących opcji prefiksu adresu URL Linków Dynamicznych:
Ustaw atrybut
source
tak, aby pasował do prefiksu ścieżki. Na przykład, jeśli masz niestandardową domenęexample.com
, Twoja reguła przepisywania może wyglądać następująco:// Domain is example.com "rewrites": [ { "source": "/links/**", // Dynamic Links start with "https://example.com/links/" "dynamicLinks": true } ]
Skonfiguruj subdomenę do użycia dla łączy dynamicznych, a następnie ustaw atrybut
source
tak, aby pasował do tej subdomeny. Na przykład, jeśli maszlinks.example.com
, Twoja reguła przepisywania może wyglądać następująco:// Domain is links.example.com "rewrites": [ { "source": "/**", // Dynamic Links start with "https://links.example.com/" "dynamicLinks": true } ]