يعيد التعبير العادي للمجال الجديد (Regex) التوجيه في WordPress
خلال الأسابيع القليلة الماضية ، كنا نساعد العميل على إجراء عملية ترحيل معقدة باستخدام WordPress. كان لدى العميل منتجان ، وكلاهما أصبح شائعًا لدرجة أنه كان عليهما تقسيم الأعمال والعلامات التجارية والمحتوى إلى مجالات منفصلة. انها مهمة تماما!
يظل نطاقهم الحالي في وضعه ، ولكن النطاق الجديد سيحتوي على كل المحتوى فيما يتعلق بهذا المنتج ... من الصور ، والمشاركات ، ودراسات الحالة ، والتنزيلات ، والنماذج ، وقاعدة المعرفة ، وما إلى ذلك. لقد أجرينا تدقيقًا وزحفنا إلى الموقع للتأكد من أننا لن لا يفوتك أصل واحد.
بمجرد إنشاء الموقع الجديد وتشغيله ، حان وقت سحب المفتاح وتشغيله. وهذا يعني أنه يجب إعادة توجيه أي عناوين URL من الموقع الأساسي الذي ينتمي إلى هذا المنتج إلى المجال الجديد. لقد حافظنا على اتساق معظم المسارات بين المواقع ، لذلك كان المفتاح هو إعداد عمليات إعادة التوجيه بشكل مناسب.
إعادة توجيه الإضافات في WordPress
هناك نوعان من الإضافات الشائعة المتاحة التي تقوم بعمل رائع في إدارة عمليات إعادة التوجيه باستخدام WordPress:
- إعادة توجيه - ربما يكون أفضل مكون إضافي في السوق ، مع إمكانات التعبير العادي وحتى الفئات لإدارة عمليات إعادة التوجيه الخاصة بك.
- رانكماث سيو - هذا البرنامج المساعد SEO خفيف الوزن هو نسمة من الهواء النقي ويجعل قائمتي من أفضل الإضافات وورد فى السوق. لديها عمليات إعادة توجيه كجزء من عرضها وستستورد حتى بيانات إعادة التوجيه إذا قمت بالترحيل إليها.
إذا كنت تستخدم محرك استضافة WordPress مُدار مثل WPEngine، لديهم وحدة للتعامل مع عمليات إعادة التوجيه قبل أن يصل الشخص إلى موقعك على الإطلاق ... ميزة رائعة جدًا يمكن أن تقلل من زمن الانتقال والنفقات العامة على استضافتك.
وبالطبع يمكنك ذلك اكتب قواعد إعادة التوجيه في ملف htaccess الخاص بك على خادم WordPress الخاص بك ... لكنني لا أوصي بذلك. أنت على بعد خطأ واحد في بناء الجملة بحيث يتعذر الوصول إلى موقعك!
كيفية إنشاء إعادة توجيه Regex
في المثال الذي قدمته أعلاه ، قد يبدو من السهل إجراء إعادة توجيه نموذجية من مجلد فرعي إلى المجال والمجلد الفرعي الجديد:
Source: /product-a/
Destination: https://newdomain.com/product-a/
ومع ذلك ، هناك مشكلة في ذلك. ماذا لو كنت قد وزعت روابط وحملات تحتوي على سلسلة استعلام لتتبع الحملة أو الإحالات؟ لن يتم إعادة توجيه هذه الصفحات بشكل صحيح. ربما يكون عنوان URL هو:
https://existingdomain.com/product-a/?utm_source=newsletter
نظرًا لأنك كتبت مطابقة تامة ، فلن يتم إعادة توجيه عنوان URL هذا إلى أي مكان! لذلك ، قد تميل إلى جعله تعبيرًا عاديًا وإضافة حرف بدل إلى عنوان URL:
Source: /product-a/(.*)
Destination: https://newdomain.com/product-a/
هذا جيد جدًا ، لكن لا تزال هناك مشكلتان. أولاً ، سيتطابق مع أي عنوان URL مع / product-a / فيه وإعادة توجيههم جميعًا إلى نفس الوجهة. لذلك ستتم إعادة توجيه كل هذه المسارات إلى نفس الوجهة.
https://existingdomain.com/product-a/
https://existingdomain.com/help/product-a/
https://existingdomain.com/category/parent/product-a/
بالرغم من ذلك ، تعتبر التعبيرات العادية أداة رائعة. أولاً ، يمكنك تحديث مصدرك للتأكد من تحديد مستوى المجلد.
Source: ^/product-a/(.*)
Destination: https://newdomain.com/product-a/
سيضمن ذلك إعادة التوجيه بشكل صحيح على مستوى المجلد الأساسي فقط. الآن بالنسبة إلى المشكلة الثانية ... كيف ستحصل على معلومات سلسلة الاستعلام التي تم التقاطها في الموقع الجديد إذا لم تتضمنها إعادة التوجيه؟ حسنًا ، التعبيرات النمطية لها حل رائع لذلك أيضًا:
Source: ^/product-a/(.*)
Destination: https://newdomain.com/product-a/$1
يتم بالفعل التقاط معلومات أحرف البدل وإلحاقها بالوجهة باستخدام المتغير. وبالتالي…
https://existingdomain.com/product-a/?utm_source=newsletter
ستتم إعادة التوجيه بشكل صحيح إلى:
https://newdomain.com/product-a/?utm_source=newsletter
ضع في اعتبارك أن حرف البدل سيمكن أيضًا من إعادة توجيه أي مجلد فرعي ، لذلك سيتم تمكين هذا أيضًا:
https://existingdomain.com/product-a/features/?utm_source=newsletter
ستتم إعادة التوجيه إلى:
https://newdomain.com/product-a/features/?utm_source=newsletter
بالطبع ، يمكن أن تصبح التعبيرات العادية أكثر تعقيدًا بكثير من هذا ... لكنني أردت فقط تقديم عينة سريعة عن كيفية إعداد إعادة توجيه regex حرف بدل التي تمرر كل شيء بشكل نظيف إلى مجال جديد!