Dinamik Bağlantılar için özel alan adı ayarlama

page.link alt alan adı yerine kendi alan adınızı kullanarak Dynamic Links markanız üzerinde daha fazla kontrol sahibi olabilirsiniz. Özel alan adlarıyla aşağıdaki örneklere benzer Dynamic Links oluşturabilirsiniz:

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'nin link-suffix'ten önceki bölümüne URL ön eki denir. Bu bölüm hem özel Dynamic Link alanınızı hem de bir yol ön ekini içerir. Dynamic Links oluştururken bir URL ön eki sağlamanız gerekir.

Özel alan oluşturmak için Firebase projenizde Düzenleyici veya Sahip izni gerekir.

Dynamic Links için web alanınızı kullanma

Dynamic Links ve web sayfalarınız, Evrensel Bağlantılar ve Uygulama Bağlantıları için aynı alanı kullanabilirsiniz. Ancak bunu yaparsanız Dynamic Link URL'lerinizin web URL'lerinizle çakışmadığından emin olmanız gerekir. Dynamic Links'ü belirli bir URL ön ekiyle kullanacak şekilde yapılandırdığınızda, bu ön ek ile başlayan tüm URL'ler Dynamic Links olarak değerlendirilir. Bu nedenle, bu ön eke sahip URL'leri sıradan barındırılan içeriğe yönlendirmek için kullanamazsınız.

Örneğin, https://example.com/my-resource kaynağına (web sayfası, geçiş bağlantısı veya uygulama bağlantısı) Dynamic Link oluşturmak istiyorsanız Dynamic Links URL ön eki olarak https://example.com/ kullanamazsınız. Aksi takdirde https://example.com/my-resource, Dynamic Link olarak değerlendirilir. Bunun yerine, farklı bir alan adı veya farklı bir yol öneki içeren bir URL öneki kullanmanız gerekir.

Bu nedenle, link parametresi tarafından belirtilen URL'ler Dynamic Link URL ön ekiyle (https://example.com/) başladığından aşağıdaki uzun biçimli Dynamic Links (ve eşdeğer kısa bağlantılar) beklendiği gibi çalışmaz:

 https://example.com/?link=https://example.com/my-resource
 https://example.com/?link=https://example.com/resources/my-resource

Ancak URL ön ekleri link URL'leriyle çakışmadığı için aşağıdaki uzun Dynamic Links (ve eşdeğer kısa bağlantılar) işe yarayabilir:

 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 konsolunda özel alan oluşturma

Genellikle özel bir alanı tamamen Firebase konsolunda oluşturabilirsiniz. Bunu yapmak için:

  1. Projeniz için Firebase Hosting'ü ayarlamadıysanız Firebase konsolunun Hosting sayfasını açın, Başlayın'ı ve ardından kurulum talimatlarını tıklayın. Şu anda belirtilen adımları tamamlamanız gerekmez.

  2. Firebase konsolunun Dynamic Links sayfasını açın.

  3. Dynamic Links'ü daha önce kullanmadıysanız Başlayın'ı tıklayın. Aksi takdirde, açılır menüden URL ön eki ekle'yi tıklayın.

    Ardından, istendiğinde kullanmak istediğiniz alanı ve yol ön ekini belirterek kurulum sihirbazını tamamlayın.

  4. Yalnızca iOS: Xcode projenizin Info.plist dosyasında FirebaseDynamicLinksCustomDomains adlı bir anahtar oluşturun ve bu anahtarı uygulamanızın Dynamic Links URL ön eklerine ayarlayın. Örneğin:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/link</string>
      <string>https://example.com/promos</string>
    </array>
    

Özel alan adlarını manuel olarak ayarlama

Dynamic Links için zaten özel alanınız varsa ve başka bir alan eklemek istiyorsanız ya da Hosting sitesine bağlı bir alanı eklerken özel alanınızı manuel olarak ayarlamanız gerekir.

Bunu yapmak için:

  1. Henüz yapmadıysanız alanınızı Firebase Hosting'e bağlayın.

    Alanınızı Firebase Hosting ile ayarlamak, yerel proje dizininizde firebase.json yapılandırma dosyasını oluşturmayı içerir.

  2. Firebase KSA'yı en son sürümüne güncelleyin (v6.5.0 veya sonraki sürümler).

  3. Projenizin firebase.json dosyasında Hosting sitenizi Dynamic Links için yapılandırın. Projenizde birden fazla site varsa kullanmak istediğiniz alana bağlı siteyi yapılandırdığınızdan emin olun.

    • appAssociation değerini AUTO olarak ayarlayın. Bu ayarda Hosting, assetlinks.json ve apple-app-site-association dosyalarını istendiğinde dinamik olarak oluşturur.

    • Yeniden yazma kurallarını dynamicLinks'un true olarak ayarlandığı şekilde ayarlayarak Dynamic Links için kullanmak istediğiniz yol ön eklerinin belirtin. Bu yollara yapılan istekler Dynamic Links üzerinden proxy'lenir.

      URL'lerin yollarını yeniden yazan kuralların aksine, Dynamic Link yeniden yazma kuralları normal ifadeler içeremez.

      Siteniz için birden fazla yeniden yazma kuralınız varsa Hosting'ün, istekte eşleşen ilk yeniden yazma kuralını yürüttüğünü unutmayın.

    Örneğin:

    "hosting": {
      // ...
      "appAssociation": "AUTO",
      "rewrites": [
        {
          "source": "/promos/**",
          "dynamicLinks": true
        },
        {
          "source": "/links/share/**",
          "dynamicLinks": true
        }
      ]
    }
    

    Yukarıdaki yapılandırmayla, aşağıdaki örneklere benzer URL ön ekleriyle Dynamic Links oluşturabilirsiniz:

    https://your-domain/promos/link-suffix
    https://your-domain/links/share/link-suffix
    

    Bu alanı yalnızca Dynamic Links için kullanıyorsanız yol öneki olmayan Dynamic Links oluşturmak için /** kaynak yolunu kullanabilirsiniz:

    {
      "source": "/**",
      "dynamicLinks": true
    }
    

    Yukarıdaki kuralla, aşağıdaki örnekte gösterildiği gibi Dynamic Links oluşturabilirsiniz:

    https://your-domain/link-suffix

  4. Hosting yapılandırma değişikliklerinizi dağıtın:

    firebase deploy --only hosting

    (isteğe bağlı) Hosting REST API'yi kullanarak dağıtılan firebase.json içeriğini kontrol edebilirsiniz.

  5. Yalnızca iOS: Xcode projenizin Info.plist dosyasında FirebaseDynamicLinksCustomDomains adlı bir anahtar oluşturun ve bu anahtarı uygulamanızın Dynamic Links URL ön eklerine ayarlayın. Örneğin:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/promos</string>
      <string>https://example.com/links/share</string>
    </array>
    

Dynamic Links ve Hosting için öncelik sırası

Dynamic Links için özellikle barındırma öncelik sırasına dikkat edin.

  • Dynamic Links URL ön ekinizi, daha yüksek öncelikli barındırma yapılandırmalarıyla çakışmayacak şekilde ayarlayın (ör. barındırılan statik içerik, yeniden yazmalara göre her zaman önceliklidir).
  • rewrites özelliğinde, Hosting yanıtı, isteklenen yolu yakalayan ilk source glob tarafından belirtilen kurala uyar.

Örneğin, your-domain/source-path/link-suffix için bir Dynamic Link oluşturursanız ancak your-domain/source-path/index.html adresinde statik içeriğiniz varsa statik içerik önceliklidir. Son kullanıcı, Dynamic Link yerine index.html görür. Benzer şekilde, your-domain/source-path/link-suffix adresinde statik içeriğiniz varsa son kullanıcı Dynamic Link yerine statik içeriği görür.

Hem Dynamic Links hem de Hosting için aynı markayı kullanmak istiyorsanız Dynamic Links URL ön ekiniz için aşağıdaki seçeneklerden birini kullanabilirsiniz:

  • source özelliğinizi bir yol önekiyle eşleşecek şekilde ayarlayın. Örneğin, example.com özel alanınız varsa yeniden yazma kuralınız şu şekilde olabilir:

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • Dynamic Links için kullanılacak bir alt alan adı oluşturun, ardından source özelliğinizi bu alt alan adıyla eşleşecek şekilde ayarlayın. Örneğin, links.example.com alt alanınız varsa yeniden yazma kuralınız şu şekilde olabilir:

    // Domain is links.example.com
    "rewrites": [ {
      "source": "/**",  // Dynamic Links start with "https://links.example.com/"
      "dynamicLinks": true
    } ]