كيفية إعداد واستخدام النطاقات الفرعية الديناميكية غير المحدودة؟

كيفية إعداد واستخدام النطاقات الفرعية الديناميكية غير المحدودة؟ - bimakale.com
09 Ağustos 2024 Cuma - 14:29 (1 Yıl önce)

النطاق الفرعي
النطاق الفرعي هو تقسيم فرعي للنطاق الرئيسي يوجد تحت النطاق الرئيسي ومرتبط به. على سبيل المثال، إذا كان "example.com" هو النطاق الرئيسي، فإن "blog.example.com" سيكون نطاقًا فرعيًا. تُستخدم النطاقات الفرعية عادةً لتقديم ميزات أو خدمات أو محتوى إضافي للموقع الإلكتروني الرئيسي.

استخدامات النطاقات الفرعية:

  • أقسام مختلفة: تُستخدم لفصل أجزاء مختلفة من موقع الويب. على سبيل المثال، يمكن أن يكون "shop.example.com" قسمًا للتجارة الإلكترونية، ويمكن أن يكون "support.example.com" صفحة الدعم.

  • التدويل: يمكن استخدام النطاقات الفرعية لتقديم محتوى بلغات أو مناطق مختلفة. على سبيل المثال، يمكن أن يقدم "en.example.com" محتوى باللغة الإنجليزية، ويمكن أن يقدم "fr.example.com" محتوى باللغة الفرنسية.

  • التطوير والاختبار: يمكن استخدام نطاقات فرعية مختلفة للتطوير أو الاختبار أو الإعداد، مثل "dev.example.com" أو "staging.example.com".

  • تحسين محركات البحث (SEO) وإدارة العلامة التجارية: يمكن استخدام النطاقات الفرعية بشكل استراتيجي لتحسين محركات البحث وإدارة العلامة التجارية.

DNS والنطاقات الفرعية:
يتم تكوين النطاق الفرعي من خلال إعدادات DNS (نظام أسماء النطاقات). يمكن توجيه كل نطاق فرعي إلى عنوان IP منفصل أو يمكن استخدام نفس الخادم، اعتمادًا على إعدادات DNS للنطاق الرئيسي.
في ضوء هذه المعلومات، تعد النطاقات الفرعية مفيدة للغاية لتحسين تنظيم وهيكل موقع الويب.

النطاقات الفرعية الديناميكية
تشير النطاقات الفرعية الديناميكية إلى النطاقات الفرعية المخصصة للمستخدم أو التي يتم إنشاؤها ديناميكيًا. يُستخدم هذا النوع من النطاقات الفرعية عادةً في التطبيقات الويب للسماح للمستخدمين أو العملاء بالوصول إلى محتواهم أو خدماتهم المحددة.

ميزات وحالات استخدام النطاقات الفرعية الديناميكية:

  • محتوى مخصص للمستخدم: غالبًا ما يتم إنشاء النطاقات الفرعية الديناميكية تلقائيًا بناءً على أسماء المستخدمين أو معرفات العملاء. على سبيل المثال، عندما ينشئ مستخدم اسمه "john" حسابًا، يمكن إنشاء نطاق فرعي مثل "john.example.com" ديناميكيًا، مما يسمح للمستخدمين بالوصول بسهولة إلى مساحاتهم الشخصية.

  • تطبيقات SaaS: تُستخدم على نطاق واسع في منصات البرمجيات كخدمة (SaaS). على سبيل المثال، يمكن لتطبيق إدارة المشاريع إنشاء نطاقات فرعية ديناميكية مثل "companyname.example.com" لكل عميل.

  • ميزة SEO: يمكن فهرسة النطاقات الفرعية الديناميكية بواسطة محركات البحث كمواقع منفصلة، مما يعني أن كل نطاق فرعي يمكن أن يكون له استراتيجية SEO خاصة به.

  • التوجيه المتقدم وموازنة الحمل: يمكن استخدام النطاقات الفرعية الديناميكية لإدارة حركة مرور المستخدمين بكفاءة أكبر، مثل التوجيه إلى خوادم أو مراكز بيانات مختلفة.

كيف تعمل النطاقات الفرعية الديناميكية؟
تعمل النطاقات الفرعية الديناميكية عادةً بالتنسيق مع تكوينات خادم الويب و DNS. عندما تصل طلب، يحلل الخادم النطاق الفرعي ويقدم المحتوى أو الخدمة المناسبة. في إعداد النطاق الفرعي الديناميكي، لا تحتاج إلى تحديد النطاقات الفرعية مسبقًا على خادمك. بعد تكوين إعدادات DNS والخادم، سيتم توجيه جميع الطلبات الواردة إلى ملف الدخول الخاص بمشروعك. الخطوة التالية هي تقديم معلومات مخصصة للمستخدم بناءً على النطاق الفرعي، اعتمادًا على مشروعك وإبداعك. مثال على النطاقات الفرعية الديناميكية: customer1.example.com، customer2.example.com، customer3.example.com، customer...n.example.com.

تقنيات لاستخدام النطاقات الفرعية الديناميكية:

  • سجل DNS البديل (Wildcard): قم بتكوين سجل DNS بديل (*).example.com في DNS، بحيث يتم توجيه أي طلب نطاق فرعي إلى الخادم.

  • منطق توجيه الخادم: يحلل خادم الويب النطاق الفرعي في الطلب الوارد ويحمّل المحتوى أو الصفحة المقابلة. يتم تنفيذ ذلك عادةً من خلال كود backend أو منطق التوجيه.

  • شهادات SSL: إذا تم استخدام HTTPS، فيمكن استخدام شهادات SSL البديلة أو خدمات مثل Let's Encrypt لإنشاء شهادات تلقائيًا للنطاقات الفرعية الديناميكية.

باختصار، تعد النطاقات الفرعية الديناميكية طريقة فعالة لتقديم تجارب مخصصة للمستخدمين أو لبناء هياكل مرنة وقابلة للتوسع في التطبيقات الويب.

كيفية التنفيذ؟

  1. تثبيت وحدة إعادة كتابة URL في IIS
    أولاً، تأكد من تثبيت وحدة إعادة كتابة URL في IIS. إذا لم يكن مثبتًا، يمكنك تثبيته باستخدام Microsoft Web Platform Installer.

  2. تحرير ملف web.config
    قم بإنشاء أو تحرير ملف web.config في الدليل الجذري لموقعك. أضف قاعدة إعادة كتابة URL التالية إلى ملف web.config الخاص بك:

    xml

    <configuration>
        <system.webServer>
            <rewrite>
                <rules>
                    <rule name="النطاق الفرعي إلى الفهرس">
                        <match url=".*" />
                        <conditions>
                            <add input="{HTTP_HOST}" pattern="^(.*)\.domain\.com$" />
                        </conditions>
                        <action type="Rewrite" url="/index.php" />
                    </rule>
                </rules>
            </rewrite>
        </system.webServer>
    </configuration>

    الجزء pattern="^(.*)\.domain\.com$" يلتقط النطاق الفرعي ويوجه جميع طلبات النطاق الفرعي إلى index.php. استبدل domain.com باسم النطاق الخاص بك.

    • التعبير .* يطابق أي جزء من عنوان URL، مما يضمن توجيه جميع الطلبات الواردة إلى index.php.

    • الإجراء action من نوع Rewrite يوجه الطلب إلى index.php في الخلفية دون تغيير محتوى عنوان URL.

    احفظ الملف وأعد تشغيل IIS. الآن، سيتم توجيه جميع طلبات النطاق الفرعي تلقائيًا إلى index.php.

  3. تكوين النطاقات الفرعية البديلة (Wildcard) على IIS
    لتوجيه جميع النطاقات الفرعية البديلة من Cloudflare بشكل صحيح على IIS، عادةً لا يلزم أي تكوين إضافي على خادم IIS. ومع ذلك، لتوجيه جميع النطاقات الفرعية ديناميكيًا، يمكنك اتباع هذه الخطوات:

    • إعدادات ربط الموقع:
      قم بإعداد موقع لنطاقك في IIS وأضف دعم النطاقات الفرعية البديلة إلى هذا الموقع:

      • في مدير IIS، انقر بزر الماوس الأيمن على الموقع الذي أنشأته لنطاقك وحدد تحرير الروابط....

      • انقر على إضافة... لإضافة ربط جديد.

      • في حقل اسم المضيف، أدخل *.example.com. يفتح هذا نطاقات فرعية غير محدودة لموقعك. وهذا يغطي جميع نطاقاتك الفرعية.

  4. إعدادات إعادة توجيه DNS على Cloudflare

    • الوصول إلى لوحة تحكم Cloudflare: قم بتسجيل الدخول إلى حساب Cloudflare الخاص بك وحدد النطاق الذي تريد إعادة توجيهه.

    • انتقال إلى إعدادات DNS: انقر على علامة التبويب DNS في القائمة اليسرى.

    • إنشاء سجل A: قم بإنشاء سجل A باستخدام عنوان IP لخادم IIS الخاص بك:

      • الاسم: @ (يمثل هذا النطاق الجذري للنطاق الخاص بك)

      • عنوان IPv4: عنوان IP لخادم IIS الخاص بك

      • TTL: تلقائي

      • حالة الوكيل: مفعل (يسمح لـ Cloudflare بمعالجة وتحسين حركة المرور)

    • بالإضافة إلى ذلك، إذا كنت تريد إعادة توجيه النطاقات الفرعية البديلة:

      • الاسم: * (يغطي هذا جميع النطاقات الفرعية)

      • عنوان IPv4: عنوان IP لخادم IIS الخاص بك

      • TTL: تلقائي

      • حالة الوكيل: مفعل

    • إنشاء سجلات CNAME (اختياري): إذا كنت تريد إعادة توجيه نطاقات فرعية محددة، يمكنك إضافة سجلات CNAME:

      • الاسم: النطاق الفرعي (اسم النطاق الفرعي الذي تريد إعادة توجيهه)

      • الهدف: domain.com (أو نطاق آخر مناسب)

      • حالة الوكيل: مفعل

تكوين SSL/TLS
للتأكد من أن Cloudflare يستخدم شهادات SSL/TLS عند إعادة توجيه حركة المرور إلى خادم IIS الخاص بك، تحتاج إلى تكوين إعدادات SSL/TLS الصحيحة.

  • انتقل إلى علامة التبويب SSL/TLS: انقر على علامة التبويب SSL/TLS في لوحة تحكم Cloudflare.

  • حدد وضع SSL: هناك خيارات SSL مختلفة هنا. إذا كان لديك شهادة SSL على خادم IIS الخاص بك، يمكنك تحديد وضع Full أو Full (Strict).

    • مرن: يستخدم Cloudflare SSL بين الزائر ونفسه، ولكن الاتصال بخادمك يكون عبر HTTP (غير موصى به لأن الاتصال بالخادم غير مشفر).

    • كامل: يتم استخدام SSL بين كل من Cloudflare والزائر وبين Cloudflare وخادمك.

    • كامل (صارم): مشابه لوضع كامل، ولكن يجب أن تكون شهادة SSL على خادمك صالحة وصادرة من جهة تصديق موثوقة.

  • استخدام HTTPS دائمًا: إذا قمت بتمكين هذا الخيار، يقوم Cloudflare تلقائيًا بإعادة توجيه جميع طلبات HTTP إلى HTTPS.

تكوين NGINX
لإعادة توجيه النطاقات الفرعية الديناميكية إلى ملف PHP واحد (index.php) على Nginx، تحتاج إلى تكوين Nginx بشكل مناسب. سيقوم هذا التكوين بإعادة توجيه جميع طلبات النطاق الفرعي الواردة إلى index.php وجعل معلومات النطاق الفرعي متاحة في متغيرات $_SERVER.

الخطوات:

  • كتلة الخادم: إنشاء كتلة خادم لالتقاط النطاقات الفرعية الديناميكية.

  • إعادة التوجيه: إعادة توجيه جميع الطلبات إلى index.php.

  • معلومات النطاق الفرعي: تمرير معلومات النطاق الفرعي إلى PHP.

مثال تكوين Nginx:
أضف المثال التالي إلى ملف تكوين Nginx الخاص بك. سيوجه هذا المثال جميع النطاقات الفرعية إلى index.php:

nginx

server {
    listen 80;
    server_name *.example.com;
    root /var/www/html;

    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # قم بالتحديث وفقًا لإصدار PHP والتكوين الخاص بك
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SUBDOMAIN $subdomain; # تمرير معلومات النطاق الفرعي
        include fastcgi_params;
    }
}
  • server_name *.example.com: يلتقط هذا التكوين جميع النطاقات الفرعية لـ example.com. على سبيل المثال، سيتم توجيه جميع النطاقات الفرعية مثل sub1.example.com، sub2.example.com إلى كتلة الخادم هذه.

  • try_files $uri $uri/ /index.php?$args;: تعيد هذه السطر توجيه جميع الطلبات الواردة إلى index.php. إذا لم يتم العثور على الملف أو الدليل المطلوب، فإنه يعيد التوجيه إلى index.php مع المعلمات الواردة.

  • fastcgi_param SUBDOMAIN $subdomain;: تمرر هذه السطر معلومات النطاق الفرعي إلى PHP كـ $_SERVER['SUBDOMAIN']. يمكن معالجة هذه المعلومات في PHP باستخدام window.location.hostname.

  • fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;: تحدد هذه السطر ملف مقبس PHP-FPM. قد تحتاج إلى التحديث وفقًا لإصدار PHP والتكوين الخاص بك.

استخدام معلومات النطاق الفرعي في PHP:
يمكنك استرداد معلومات النطاق الفرعي في PHP على النحو التالي:

php

$subdomain = $_SERVER['SUBDOMAIN'] ?? '';
echo "النطاق الفرعي: " . $subdomain;

مع هذا التكوين، يتم إعادة توجيه جميع طلبات النطاق الفرعي إلى index.php، وتصبح معلومات النطاق الفرعي متاحة للمعالجة في PHP.

يمكن أيضًا استخدام نفس التكوين لـ ASP.NET و ASP.NET Core.


  • Web Yazılım



Yorumlar
Sende Yorumunu Ekle
Kullanıcı
0 karakter
Yazarın Diğer Etiketleri Tümünü Göster
Popüler Etiketler Tümünü Göster
Yazarın Diğer İçerikleri
Alakalı İçerikler