[شرح]للـ mod_rewrite بأسهل ما يمكن ..!
بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته
كيفكم إنشاء الله بألف خير
اليوم أتقدم أليكم بشرح للـmod_rewrite بأسهل الطرق الممكنة و هذا بسبب الطلب الكبير لها
بسم الله نبدأ
أي عمل لم يبدأ بذكر الله فهو أبتر
-----------------------------
الـmod_rewrite له علاقة بخادم الويب اباتشي (apache server) تيتح لنا طلب قرائة روابط بغير وضعها الحقيقي
و اليكم الشرح
عندما نقوم ببناء تطبيقات برمجية على الانترنيت باستخدام اي لغة من لغات البرمجة المختصة بالويب فاننا نعتمد في الغالب على استخدام طرق لنقل المتغيرات من مكان الى اخر لنقوم باستخراج النتائج و المعطيات او التحقق منها وهذه الطرق في الغالب تعمد على GET او POST .
حيث أن الـ GET تعني إستخراج أو بمعنى آخر الاستدعاء .. و بينما الـ POST تعني الادخال أو بمعنى آخر إضافة معطى جديد ..
ليس لدينا مشكلة في استخدام POST لانها تكون مبينة على رابط سابق او معلومات سابقة حصلنا عليها من صفحة سابقة او ادخال مباشر من المستخدم و لا نعتمد عليها في الروابط الخارجيه للاستدلال بصفحة معينة .
اذا نصل مما سبق ان النتيجة النهائية في الروابط هي الطريقه GET أي الإستخراج أو الاستدعاء ..
و هذا مثال لهذه الطريقة
الطريقه هنا هي GETكود:http://www.example.com/games.php?action=view&id=10
اي ان المتغيرات ظاهرة في الرابط
مشكلتنا هنا ان محركات البحث لا تلتفت كثيراً لمثل هذه الروابط بل تهتم بالروابط المباشرة ..
مثال :
كيف نحل هذه المشكلة ؟؟كود:http://www.example.com/games.php http://www.example.com/games.html
خاصية mod_rewrite تقدم لنا الحل الأكيد و المفيد ..
كيف نبدء في استخدامها
اسهل الطرق لتعملها هي بالامثلة التي ستوضع في هذا الشرح:
فليكن لدينا هذا المثال :
نريد تحويله الى رابط مباشر ووقع اختياري على هذا الرابط :كود:http://www.example.com/games.php?action=view&id=10
الرابط الجديد مكون من التالي :كود:http://www.example.com/view/1.html
كود:()/().html
ولكي يعمل نضيف عليه رمز النجمة[*] :
كود:(.*)/(.*).html
بمعنى آخر مرر اي شيء أو لاشيء
نفصل اللاحقة أي الامتدادhtml كي لايعطينا خطاً 500 المزعج هههههه:
كود:(.*)/(.*)\.html
ثم نخبره من اين يبدء ومن اين ينتهي ...
كود:^(.*)/(.*)\.html$
ثم نخبره من اين يتلقى المتغيرات ...
كود:^(.*)/(.*)\.html$ games.php?action=$10&id=$2
الان نقوم بكتابة الكود كاملاً ونحفظة في ملف .htaccess
كود:.htaccessكود:#SWITCH mod_rewrite ON Options +FollowSymLinks RewriteEngine on #OUR ABOVE CODE RewriteRule ^(.*)/(.*)\.html$ games.php?action=$10&id=$2
هكذا نكون جاهزين فقط نقوم برفعه الى المجلد الرئيسي للموقع ونستخدمه وسوف يعمل بكل تأكيد و من دون مشاكل
لكن هناك زيادة لمن يرغب في الزيادة ......!
لو نظرنا الى متغير الخبر نجد انه ارقام اذن يمكنا تحديد نوعية المتغير بالارقام فقط ولن يقبل الاحرف
ايضاً لو نظرنا الى متغير actionكود:#SWITCH REWRITE ON Options +FollowSymLinks RewriteEngine on #PUT OUR ABOVE CODE RewriteRule ^(.*)/([0-9]+)\.html$ games.php?action=$10&id=$2
نجد انه حروف صغيرة ولا يأتي ارقام اذا نغلعه على الحروف الصغيرة فقط
بعد رفع الملف كما اشرنا من قبل نقوم بتغيير الروابط في برنامجنا حسب الوضع الجديد الذي تحددونهكود:#SWITCH REWRITE ON Options +FollowSymLinks RewriteEngine on #PUT OUR ABOVE CODE RewriteRule ^([a-z]+)/([0-9]+)\.html$ games.php?action=$10&id=$2
وهناك المزيد لمن رغب في المزيد عن هذه الخاصية الجملية
اتمنى ان يكون الشرح واضحاً و مفيداً و جميلاً
تحيات أخوكم التنين الأحمر سابقاً =-=> زرياب
الرجاء الدعاء الخالص لي و لوالدي
أرجوا من أبو راشد أن يثبت الموضوع
مواقع النشر (المفضلة)