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

با استفاده از دامنه خود به جای یک ساب دامنه page.link ، می توانید کنترل بیشتری بر برند پیوندهای پویا خود داشته باشید. با دامنه های سفارشی، می توانید پیوندهای پویا مانند مثال های زیر ایجاد کنید:

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

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

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

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

به عنوان مثال، اگر می خواهید یک پیوند پویا به منبع https://example.com/my-resource (یک صفحه وب، پیوند جهانی یا پیوند برنامه) ایجاد کنید، نمی توانید از https://example.com/ استفاده کنید. https://example.com/ به عنوان پیشوند URL پیوندهای پویا، زیرا انجام این کار باعث می شود https://example.com/my-resource به عنوان یک پیوند پویا در نظر گرفته شود. در عوض، باید از یک پیشوند URL با دامنه یا پیشوند مسیر متفاوت استفاده کنید.

بنابراین، پیوندهای پویا با فرم طولانی زیر (و پیوندهای کوتاه معادل) آنطور که در نظر گرفته شده است کار نمی کنند زیرا URL های مشخص شده توسط پارامتر link با پیشوند URL پیوند پویا، https://example.com/ شروع می شوند:

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

اما پیوندهای پویا با فرم طولانی زیر (و پیوندهای کوتاه معادل) می توانند کار کنند، زیرا پیشوندهای 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 را برای پروژه خود راه‌اندازی نکرده‌اید، صفحه میزبانی کنسول Firebase را باز کنید، روی Get Started کلیک کنید و روی دستورالعمل‌های راه‌اندازی کلیک کنید. در این زمان لازم نیست مراحل مشخص شده را کامل کنید.

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

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

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

  4. فقط iOS : در فایل Info.plist پروژه Xcode خود، کلیدی به نام FirebaseDynamicLinksCustomDomains ایجاد کنید و آن را روی پیشوندهای URL پیوندهای پویا برنامه خود تنظیم کنید. مثلا:

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

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

در برخی شرایط، مانند زمانی که از قبل یک دامنه سفارشی برای پیوندهای پویا تنظیم کرده اید و می خواهید دامنه دیگری اضافه کنید، یا زمانی که دامنه ای را اضافه می کنید که قبلاً به یک سایت میزبانی متصل شده است، باید دامنه سفارشی خود را به صورت دستی تنظیم کنید.

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

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

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

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

  3. سایت میزبانی خود را برای پیوندهای پویا در فایل firebase.json پروژه خود پیکربندی کنید. اگر پروژه شما دارای چندین سایت است، حتما سایت متصل به دامنه مورد نظر خود را پیکربندی کنید.

    • appAssociation روی AUTO تنظیم کنید. با این تنظیم، میزبانی به صورت پویا فایل‌های assetlinks.json و apple-app-site-association را در صورت درخواست ایجاد می‌کند.

    • پیشوندهای مسیری را که می خواهید برای پیوندهای پویا استفاده کنید، با تنظیم قوانین بازنویسی با dynamicLinks که روی true تنظیم شده اند، مشخص کنید. درخواست‌های این مسیرها به پیوندهای پویا پروکسی می‌شوند.

      برخلاف قوانینی که مسیرهای URL را بازنویسی می‌کنند، قوانین بازنویسی پیوند پویا نمی‌توانند شامل عبارات منظم باشند.

      اگر چندین قانون بازنویسی برای سایت خود دارید، توجه داشته باشید که هاستینگ اولین قانون بازنویسی را که با درخواست مطابقت دارد اجرا می کند.

    مثلا:

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

    با پیکربندی بالا، می توانید پیوندهای پویا با پیشوندهای URL مانند مثال های زیر ایجاد کنید:

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

    اگر از این دامنه فقط برای پیوندهای پویا استفاده می کنید، می توانید از مسیر منبع /** برای ایجاد پیوندهای پویا بدون پیشوند مسیر استفاده کنید:

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

    با قانون فوق، می توانید پیوندهای پویا مانند مثال زیر ایجاد کنید:

    https://your-domain/link-suffix

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

    firebase deploy --only hosting

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

  5. فقط iOS : در فایل Info.plist پروژه Xcode خود، کلیدی به نام FirebaseDynamicLinksCustomDomains ایجاد کنید و آن را روی پیشوندهای URL پیوندهای پویا برنامه خود تنظیم کنید. مثلا:

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

ترتیب اولویت برای پیوندهای پویا و هاست

برای پیوندهای پویا، به ویژه از ترتیب اولویت میزبانی آگاه باشید.

  • اطمینان حاصل کنید که پیشوند URL پیوندهای پویا شما با تنظیمات میزبانی با اولویت بالاتر تضاد نداشته باشد (به عنوان مثال، محتوای ثابت میزبانی شده همیشه بر بازنویسی ها اولویت دارد).
  • در صفت rewrites ، پاسخ میزبانی از قانون مشخص شده توسط اولین glob source که مسیر درخواستی را ثبت می‌کند، تبعیت می‌کند.

به عنوان مثال، اگر یک پیوند پویا برای your-domain / source-path / link-suffix پیوند تنظیم کنید اما در your-domain / source-path /index.html محتوای ثابت نیز دارید، محتوای ثابت اولویت دارد. کاربر نهایی به جای پیوند پویا، index.html می بیند. به طور مشابه، اگر محتوای ثابتی در your-domain / source-path / link-suffix داشته باشید، کاربر نهایی محتوای ثابت را به جای پیوند پویا می بیند.

اگر می خواهید از یک نام تجاری برای پیوندهای پویا و میزبانی استفاده کنید، یکی از گزینه های زیر را برای پیشوند URL پیوندهای پویا خود در نظر بگیرید:

  • ویژگی source خود را طوری تنظیم کنید که با پیشوند مسیر مطابقت داشته باشد. به عنوان مثال، اگر یک دامنه سفارشی از example.com دارید، قانون بازنویسی شما می تواند این باشد:

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • یک زیر دامنه را برای استفاده برای پیوندهای پویا تنظیم کنید، سپس ویژگی source خود را برای مطابقت با آن زیر دامنه تنظیم کنید. به عنوان مثال، اگر یک زیر دامنه از links.example.com دارید، قانون بازنویسی شما می تواند این باشد:

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