أردت فقط العودة إلى هذا لذكر بعض المشاكل التي وجدتها وربما ترك بعض الآثار للمسافرين المستقبليين - لأنني وجدت هذا صعبًا للغاية لتصحيح الأخطاء.
الهروب في سلسلة تطبيع الرابط الدائم
تتكون سلسلة تطبيع الرابط الدائم من جزأين
- سلسلة التعبير العادي
- سلسلة الاستبدال
تظهران، واحدة تلو الأخرى، في سلسلة تطبيع الرابط الدائم هكذا
تطبيع الرابط الدائم
التعبير العادي الاستبدال
/(this)reallyis(intuitive)/\1reallyisn't\2
من المهم ملاحظة أن الشرطات المائلة تُعامل بشكل مختلف في الأجزاء المختلفة من نفس السلسلة.
يجب الهروب من الشرطة المائلة (وغيرها من أحرف التعبير العادي) في جزء التعبير العادي من السلسلة، ومع ذلك، لا تحتاج الشرطات المائلة إلى الهروب في جزء الاستبدال من نفس السلسلة وسيتم التعامل معها كحروف حرفية بدلاً من ذلك.
تنسيق سلاسل عناوين URL الواردة
ثانيًا، وهذا استغرق مني بعض الوقت لإتقانه، فإنك تطابق عنوان URL كمسار نسبي من الجذر ولكنك لن تتلقى / كالجزء الأول من السلسلة.
على سبيل المثال، إذا كان عنوان URL الذي يستخدمه منتدىك القديم يبدو كالتالي…
http://oldforum.com/chat/the-topic-title/post/d9aa09c3-19bd-4c6e-9d8d-a8f1008000a1
… فسيبدو عنوان URL الذي سيطابقه التعبير العادي في تطبيع الرابط الدائم كالتالي…
chat/topic-title/post/d9aa09c3-19bd-4c6e-9d8d-a8f1008000a1
أي، وصف مسار من الجذر ولكن بدون الشرطة المائلة الرائدة /. (أفترض أن هذا قد يختلف لديك اعتمادًا على بنية عناوين URL التي تعيد توجيهها - ولكنني لا أعتقد ذلك).
أمثلة
إليك بعض الأمثلة من مشروع الترحيل الخاص بي
CATEGORY_LINK_NORMALIZATION = '/(cat)\\/(.*?)([#\\?].*)?$/cat/\\2'
POST_LINK_NORMALIZATION = '/chat\\/(.*?)\\/(post)\\/(.+?)([#\\?].*)?$/post/\\3'
TOPIC_LINK_NORMALIZATION = '/(chat)\\/(.*?)([#\\?].*)?$/topic/\\2'
العملية
| عنوان URL القديم |
تطبيع الرابط الدائم |
نص مطابقة عنوان URL |
| http://oldsite.com/cat/history |
/(cat)\\/(.*?)([#\\?].*)?$/cat/\\2 |
cat/history |
| http://oldsite.com/chat/topic-title/post/d9aa09c3-19bd-4c6e-9d8d-a8f1008000a1 |
/chat\\/(.*?)\\/(post)\\/(.+?)([#\\?].*)?$/post/\\3 |
post/d9aa09c3-19bd-4c6e-9d8d-a8f1008000a1 |
| http://oldsite.com/chat/mindgames-in-football |
/(chat)\\/(.*?)([#\\?].*)?$/topic/\\2 |
topic/mindgames-in-football |
| يشير عنوان URL القديم إلى ما يبدو عليه - عنوان URL للعنصر في النظام القديم. |
|
|
سيقوم تطبيع الرابط الدائم (المسجل في إعداد النظام permalink_normalizations) بالتقاط عنوان URL الوارد (بدون الشرطة المائلة الرائدة /) وتطبيق مطابقة التعبير العادي. سيتم بعد ذلك استخدام عنوان URL المطبع الناتج للمطابقة مع نص مطابقة عنوان URL المدخل في شاشة /admin/customize/permalinks. |
|
|