یک دامنه سفارشی برای پیوندهای پویا تنظیم کنید

شما می توانید با استفاده از دامنه خود به جای ساب دامنه page.link ، کنترل بیشتری بر نام تجاری Dynamic Links خود داشته باشید. با دامنه های سفارشی، می توانید 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 سفارشی شما و پیشوند مسیر است. هنگام ایجاد Dynamic Links ، باید یک پیشوند URL ارائه دهید.

راه اندازی یک دامنه سفارشی به مجوز ویرایشگر یا مالک در پروژه Firebase شما نیاز دارد.

استفاده از دامنه وب خود برای Dynamic Links

می‌توانید از همان دامنه برای Dynamic Links و صفحات وب، پیوندهای جهانی و پیوندهای برنامه خود استفاده کنید، اما اگر این کار را انجام می‌دهید، باید مراقب باشید که URLهای Dynamic Link با URLهای وب شما مغایرت نداشته باشند. وقتی Dynamic Links برای استفاده از یک پیشوند URL خاص پیکربندی می‌کنید، همه نشانی‌های اینترنتی که با آن پیشوند شروع می‌شوند به عنوان Dynamic Links تلقی می‌شوند، بنابراین نمی‌توانید از نشانی‌های وب با آن پیشوند برای اشاره به محتوای میزبان معمولی استفاده کنید.

به عنوان مثال، اگر می خواهید یک Dynamic Link به منبع https://example.com/my-resource (یک صفحه وب، پیوند جهانی یا پیوند برنامه) ایجاد کنید، نمی توانید از https://example.com/ استفاده کنید. 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 راه اندازی کنید. برای انجام این کار:

  1. اگر Firebase Hosting برای پروژه خود راه‌اندازی نکرده‌اید، صفحه Hosting کنسول Firebase را باز کنید، روی Get Started کلیک کنید و روی دستورالعمل‌های راه‌اندازی کلیک کنید. در این زمان لازم نیست مراحل مشخص شده را کامل کنید.

  2. صفحه Dynamic Links کنسول Firebase را باز کنید.

  3. اگر قبلاً Dynamic Links استفاده نکرده‌اید، روی شروع به کار کلیک کنید. در غیر این صورت، از منوی کشویی روی افزودن پیشوند URL کلیک کنید.

    سپس، جادوگر راه‌اندازی را تکمیل کنید و دامنه و پیشوند مسیری را که می‌خواهید در صورت درخواست استفاده کنید، مشخص کنید.

  4. فقط 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 متصل شده است، باید دامنه سفارشی خود را به صورت دستی تنظیم کنید.

برای انجام این کار:

  1. اگر قبلاً این کار را نکرده اید ، دامنه خود را به Firebase Hosting متصل کنید .

    راه اندازی دامنه خود با Firebase Hosting شامل ایجاد فایل پیکربندی firebase.json در فهرست پروژه محلی شما است.

  2. به آخرین نسخه Firebase CLI (نسخه 6.5.0 یا جدیدتر) به روز کنید .

  3. سایت 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

  4. تغییرات پیکربندی Hosting خود را اعمال کنید:

    firebase deploy --only hosting

    (اختیاری) می توانید محتوای firebase.json مستقر شده را با استفاده از Hosting REST API بررسی کنید.

  5. فقط 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 از قانون مشخص شده توسط اولین glob 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
    } ]