إصلاح Broken Links مع تطبيق Redirects في Django

Feb. 9, 2023 * تيتو 4 تك

عند إنشاء موقع ويب باستخدام لغة البرمجة Python وإطار العمل Django، سيتعين عليك في مرحلة ما إعادة توجيه المستخدم من عنوان URL إلى آخر.

في هذا المقال، ستتعلم كل ما تحتاج إلى معرفته حول عمليات إعادة توجيه روابط HTTP التالفة (Broken Links) وكيفية التعامل معها في Django

يأتي Django مع تطبيق إعادة توجيه اختياري (Redirects). يتيح لك تخزين عمليات إعادة التوجيه في قاعدة بيانات والتعامل مع إعادة التوجيه نيابة عنك. يستخدم رمز حالة استجابة HTTP 301 Moved على نحو دائم افتراضيًا.

لنفترض أنك تنشئ منشورًا عن لونك المفضل مثلا، وسيكون هذا هو الرابط الخاص به.

https://tito4tech.com/post/Red-is-my-favorite-color
 

وقمت بإنشاء المنشور بالفعل على موقعك، وتمت فهرسته من قبل محركات البحث.

ومع مرور الوقت، قررت أن اللون الأحمر لم يعد لونك المفضل. وأصبح لونك المفضل هو الأزرق. لذلك قمت بتغيير رابط المنشور كما يلي:

https://tito4tech.com/post/Blue-is-my-favorite-color
 

ولكن الآن كل من يزور الرابط الأصلي الذي تمت فهرسته من قبل محركات البحث يحصل على صفحة خطأ 404؛ لأن Slug الخاص بالمنشور قد تم تغييره. لإصلاح ذلك، يتم استخدام تطبيق Redirects، وهو تطبيق خاص بإعادة توجيه الروابط التالفة أو الروابط التي لا تعمل بشكل صحيح، كل ما عليك فعله هو اتباع الخطوات التالية:

① - تأكد من تثبيت (django.contrib.sites):

* أضف "django.contrib.sites" إلى إعداد (INSTALLED_APPS) في ملف (settings.py).

* حدد إعداد SITE_ID عن طريق اضافة السطر التالي (SITE_ID = 1) في ملف (settings.py).

* قم بعمل python manage.py migrate.

* سيسجل django.contrib.sites معالج إشارة post_migrate الذي ينشئ موقعًا افتراضيًا باسم Example.com مع النطاق Example.com. سيتم إنشاء هذا الموقع أيضًا بعد أن ينشئ Django قاعدة بيانات الاختبار. لتعيين الاسم والنطاق الصحيحين لمشروعك، يمكنك استخدام ترحيل البيانات. من أجل خدمة مواقع مختلفة في الإنتاج، يمكنك إنشاء ملف إعدادات منفصل مع كل SITE_ID (ربما يتم الاستيراد من ملف إعدادات عامة لتجنب تكرار الإعدادات المشتركة)، ثم تحديد DJANGO_SETTINGS_MODULE المناسب لكل موقع.

② - أضف خيار "django.contrib.redirects.middleware.RedirectFallbackMiddleware" إلى إعداد MIDDLEWARE الخاص بك.

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.contrib.redirects.middleware.RedirectFallbackMiddleware',
]

 قم بتشغيل الأمر python manage.py migrate.

④ - الآن على صفحة الادارة الخاصة بك ، يمكنك إضافة جميع عمليات إعادة التوجيه التي تريدها كما تري في الصورة التالية:

 

 

وبذلك نكون قد انتهينا من مشكلة إصلاح الروابط التالفة التي سوف تواجهنا كثيراً عند العمل مع إطار العمل Django. أتمنى أن يكون هذا المقال مفيدًا لكم heart.

 

التسميات