it-swarm.asia

ما هي أسرع / أرخص طريقة لتنفيذ إعادة كتابة URL؟

مرتبط بـ سؤال آخر - إذا كنت بحاجة إلى تنفيذ إعادة كتابة عنوان URL في أسرع وقت ممكن ، فما هي بعض الطرق التي استخدمتها أو تعرفها والتي يمكن أن تزيد من سرعة ذلك؟

2
Mark Henderson

تمكنا من القيام بمئات المنتجات في أقل من 8 ساعات. هنا كان سيناريونا:

كان لدينا:

  • كلاب قبيحة عناوين المواقع التي كانت مليئة المعلمات لا معنى لها
  • المطورين الداخليين
  • الوصول الكامل إلى قاعدة بيانات SQL ومخطط
  • IIS6/ إعادة كتابة ISAPI (لكن كان بإمكاننا القيام بذلك للآخرين)

الخيار 1

بدا جدول منتجاتنا مثل هذا:

_ID | Product Name | Description | etc
-------------------------------------
001|Product 1     | This is...  | etc
002|Product 1     | This is...  | etc
003|Product 1     | This is...  | etc
_

لذلك كتبنا برنامجًا دفعيًا صغيرًا من خلال جدول products الخاص بنا وإنشاء إدخالات في ملف _httpd.ini_ (إصدار ISAPI Rewrite الخاص بـ _.htaccess_) ، بحيث انتهى بنا المطاف بملف مع مئات الإدخالات مثل هذا:

RewriteRule (/product-1/) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N001 [I,O,U] * يرجى الاطلاع على إخلاء المسئولية

لا تتغير منتجاتنا كثيرًا ، لذلك نعيد تشغيلها يدويًا في كل مرة نضيف فيها شيئًا ما. ليست أنيقة ، ولكن هذا عن إنجازها بسرعة/رخيصة.

بعد ذلك ، في كل مكان تم فيه طباعة الروابط الخاصة بنا على المنتجات ، تأكدنا فقط من أن الروابط قد تم إخراجها إلى عنوان URL الكامل لها.

استغرق هذا حوالي 8 ساعات في المجموع.

الخيار 2

قاعدة واحدة عامة لإعادة كتابة عنوان URL تبدو كالتالي:

RewriteRule (/products/)(.*/)(.*) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N$3 [I,O,U] * يرجى الاطلاع على إخلاء المسئولية

هذا يعني أننا يمكن أن يكتب:

_/products/my/thing/whatever/the/hell/i/want/123_

وسيكون إعادة كتابة إلى URL الصحيح. ثم إنها مجرد مسألة تغيير إخراج روابط URL الخاصة بك.

* إخلاء المسئولية: مهاراتي في regex هي صدئة للغاية وأنا جعلت من هؤلاء على الفور. قد تكون خاطئة. قد تختلف الأميال الخاصة بك على regex الفعلية ، ولكن المفهوم لا يزال قائما.

2
Mark Henderson