منتديات مدرسة المشاغبين  
دردشة وشات المشاغبين دردشة شات منوع شات خليجي
ماشاء الله تبارك الله ماشاء الله لاقوة الا بالله

العودة  »  منتديات مدرسة المشاغبين > منتديات تطوير مواقع تطوير منتديات منتديات برمجه منتديات سكربتات PHP CGI ASP.NET SQL Scripts > تطوير المواقع و السكربتات Ajax XML CSS JavaScript PHP Perl CGI seo Search Engine web2


للانف و الوجه عيادة بشار البزرة جراحة تجميل الانف و الوجه ينتهي في 19\12\1429 هـ

منتديات جسد اللقافة ينتهي في 15\2\1429 هـ 'منتدى لحظات لكل جديد ومفيد حيث المتعه والفائده ينتهي في 13\12\1429 هـ موقع احطك بعيوني ينتهي في 19\12\1429 هـ
عقارية المدينة ينتهي في 12\12\1429 هـ حراج سيارات شراء استبدال بيع جديدة و مستعملة جميع أنواع السيارات ينتهي في 12\5\1430 هـ موقع نهر الأنمي انتهاء في تاريخ 3-12-1429 هـ
مركز تحميل فلفة ينتهي في 16\12\1429 هـ 'للاعلان بالموقع 0\0\1429 هـ شبكة ورود الروح ينتهي في 16\12\1429 هـ


نعتذر عن حذف وايقاف اي عضو يستخدم بريد وهمي او غير صحيح او اسم غير لائق على ذلك جرى التنبيه
البعض يتسائل كيف يمكنني التسجيل و ماهي طريقة الحصول على عضوية بدون مشاكل الحل سهل جدا شرح كامل بالصور ( من هنا )

خاصية mod_rewrite - شرح مفصل


إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
  #1 (permalink)  
قديم 02-11-2007, 07:30 PM
صورة ابو عمر
مسؤول الموقع
 
تاريخ التسجيل: May 2001
البلد - المكان و السكن : القصيم
السيرة : محب للكل مسامح احب الحياة البرية
الهواية : البرمجة
الوظيفة - العمل: اعمال حره
الجنس : رجل man
الجنسية : سعودي
موقع : مدرسة المشاغبين
الجوال الموبايل : اتش تي سي HTC6300
مشاركات : 9,377
العمر : 31
خاصية mod_rewrite - شرح مفصل

[بسم الله الرحمن الرحيم

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

مثلاً، يمكنك استبدال رابط مثل:
كود:
http://www.site.com/showCategory.php?catId=34
بهذا الرابط:
كود:
http://www.site.com/category/34/
والذي يسهل على الزائر فهمه ومعرفة محتواه..

بالاضافة الى المزايا السابقة لاستخدام تقنية mod_rewrite، فعدم استخدامها ينطوي على عدة عيوب منها:
1- سهولة معرفة لغة البرمجة المستخدمة في الموقع، وبالتالي إعطاء الفرصة للمخترقين والمخربين بمحاولة اختراق الموقع عن طريق حقن الاستعلامات في الرابط أو اي طريقة أخرى، بالاضافة الى ان التقنية المستخدمة وكيفية سير البرنامج ينبغي أن تظل سرية ومجوبة عن الزوار.
2- احتواء الرابط على المتغيرات والعلامة "&" والتي تعتبر غير مطابقة للمواصفات القياسية XHTML والتي ينبغي ان يتم معالجتها قبل ادراج الرابط في صفحات مواقع أخرى.
3- بعض محركات البحث لا تقبل على أرشفة الصفحات التي تحتوي روابطها على علامة ؟ وبالتالي يقل ترتيب الموقع في محركات البحث.

هنا تظهر أهمية استخدام التقنية mod_rewrite والتي بفضلها يمكننا تحويل هذا الرابط الغير محبوب سيء المنظر الى رابط بهذا الشكل:
كود:
http://www.site.com/category/34/
هل لاحظت الفرق بين الرابطين؟ الرابط الثاني أسهل وقابل للحفظ أكثر كما انه معبر اكثر عن محتوى الصفحة وقابل للأرشفة من محركات البحث.

كيفية استخدام mod_rewrite
لكي تستخدم هذه التقنية يجب أولاً أن نشغل هذه الخاصية على السيرفر، ويتم ذلك عن طريق وضع الكود التالي في ملف htacces. في المجلد الرئيسي للموقع، حتى تعمل الخاصية في هذا المجلد والمجلدات المتفرعة منه، والكود هو كالتالي:
كود:
RewriteEngine on
بعد اضافة هذا الكود وتشغيل الخاصية، ينبغي اخبار السيرفر بكيفية التصرف حيال الروابط، وذلك عن طريق تمرير التعليمات له عن طريق الأمر RewriteRule، ويستخدم هذا الأمر كالتالي:
كود:
RewriteRule URL1 URL2
حيث:
URL1 هو الرابط المراد مطابقته
و URL2 هو الرابط المراد توجيه الزائر له عند دخوله للرابط الأول

مثال:
قمت بتغيير اسم ملف قديم الى اسم جديد، كيف ستتصرف حيال الروابط الموجودة في المواقع الأخرى والتي تحتوي الإسم القديم للملف؟؟ وهل يعقل ان تخسر أرشفة محركات البحث لهذه الروابط القديمة؟

الحل:
يمكنك حل هذه المشكلة باستخدام mod_rewrite وتوجيه الزوار من الرابط القديم المعروف لديهم الى الرابط الجديد، كالتالي:
كود:
RewriteEngine on
RewriteRule ^old\.html$ new.html
الكود السابق هو ابسط اكواد mod_rewrite، واليك تفصيله:
في السطر الأول قمنا بتشغيل الخاصية.
في السطر الثاني قمنا بتحويل الزائر من الملف old.html الى الملف new.html
لاحظ ما يلي:
العلامة ^ تستخدم دائماً للدلالة على بداية الرابط الأول
العلامة $ تستخدم دائماً للدلالة على نهاية الرابط الأول
العلامة . (النقطة) لها معنى خاص في التعابير المنتظمة، ويجب أن نخبر السيرفر بأن يعاملها كنقطة عادية لذلك سبقناها بالعلامة \

طيب بعد اضافة الكود و عند دخول الزائر للصفحة old.html سيتم توجيهه تلقائياً ودون علمه للصفحة new.html، ويبقى عنوان الصفحة في المتصفح مثل ما كان عليه old.html

ولكن ماذا لو أردنا ان يعرف الزائر أنه قد تم توجيهه لصفحة أخرى؟ ويتغير رابط الصفحة في المتصفح؟
علينا باستخدام هذا الكود بدلا من الأول:
كود:
RewriteEngine on
RewriteRule ^old\.html$ new.html [R]
حرف [R] بين القوسين المربعين يعني انه يتم فعلا التوجيه مع معرفة الزائر بذلك...

حتى الآن فالموضوع بسيط ومفهوم على ما أعتقد.. ولكن في اغلب الأحوال نحتاج الى بناء كود معقد، ففي الغالب لا نعرف اسم الملف الموجه ولا الموجه اليه، واذا عرفناهم فهم كثير ونريد ان نضع قاعدة عامة يتم التوجيه بناءاً عليها، أيضاً نود تمرير المتغيرات بطريقة GET ..
هنا تأتي الحاجة لاستخدام التاعبير المنتظمة REGULAR EXPRESSIONS

mod_rewrite والتعابير المنتظمة (Regular Expressions)
نصل الآن الى الجزء المهم، وهو المفيد فعلا والمستخدم بكثرة في هذه الخاصية، فهو مفيد وشيق بقدر ماهو معقد، لذا يلزم التركيز جيداً والانتباه في هذه الجزئية.
فيمكنك باستخدام التعابير المنتظمة اخبار السيرفر بان يقوم بتحويل أي رابط يطابق الصيغة التي تكتبها الى رابط آخر، واليك هذا الكود:
كود:
RewriteRule ^products/([0-9][0-9])/$ /productInfo.php?prodId=$1
فيقوم هذا الكود بمطابقة أي رابط يبدأ بـ "products/" ويتبعها رقمين ثم العلامة "/"، فعلى سبيل المثال يعمل هذا الكود عند كتابة الرابط
[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات . إضغط هنا للتسجيل]
أو الرابط [فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات . إضغط هنا للتسجيل]
ويوجهه الى الصفحة [فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات . إضغط هنا للتسجيل]
أو [فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات . إضغط هنا للتسجيل] على التوالي.

واليك تفصيل الكود السابق:
بالنسبة للشطر الأول:
كود:
^products/([0-9][0-9])/$
^ تدل على بداية الرابط
$ تدل على نهاية الرابط
[0-9] تعني اي رقم من 0 وحتى 9، وتكرارها مرتين تعني انه رقم مكون من عددين
() والأقواس تعني وضع مابينها في متغير يتم استخدامه فيما بعد في نفس السطر

أما الشطر الثاني
كود:
/productInfo.php?prodId=$1
فهو الرابط الحقيقي الذي سيتم التوجيه له
والعلامة $1 تعني استخدام المتغير الموجود بين الأقواس () في الشطر الأول في هذا المكان..
إذاً فهكذا تعمل الأشياء...

طيب الكود في المثال السابق يوجه الزائر عند كتابة رابط مثل هذا: [فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات . إضغط هنا للتسجيل]
طيب ماذا يحدث لو نسي الزائر كتابة علامة "/" في النهاية؟ الاجابة لن يتم التوجيه وسيحصل الزائر على صفحة خطأ 404

يمكننا معالجة ذلك عن طريق اجبار السيرفر باضافة العلامة "/" حتى ولو لم يضفها الزائر في نهاية الرابط، كالتالي:
كود:
RewriteRule ^products/([0-9][0-9])$ /products/$1/ [R]
RewriteRule ^products/([0-9][0-9])/$ /productInfo.php?prodId=$1
لاحظ أننا استخدمنا [R] هنا لاظهار التغيير في المتصفح ولكي يعرف الزائر انه يتحتم عليه كتابة العلامة "/" في نهاية الرابط

ولكن ماذا لو زاد عدد المنتجات عندنا عن 99؟ ماذا لو اصبحوا 100 او 200 منتج؟
هل سنضطر لتكرار الكود [0-9] بعدد المنتجات المتوقعة؟
الاجابة طبعا لا فيمكنك استخدام الكود التالي للدلالة على أي عدد من الأرقام بعد products/
كود:
RewriteRule ^products/([0-9]+)/$ /productInfo.php?prodId=$1
فالعلامة + تعني او أكثر، يعني رقم واحد أو أكثر..

إلى هنا تكون قد وصلت الى قدر جيد جداً في تعلم هذه الخاصية...
طبعا ًمازال هناك الكثير والكثير يمكن عمله بالخاصية .. ولكن نكتفي بهذا القدر كبداية
واذا اعجبكم الموضوع يمكننا عمل درس ثاني متقدم نستكمل فيه هذه الخاصية المفيدة جداً جداً

منقول من [فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات . إضغط هنا للتسجيل]


منقول للاخ

mahmoud009


من مواضيعي 0 حل مشكله خطا تحديث العدادات للاعضاء
0 الاصدار 374 من النسخة الماسية بدون هاكات
0 البلوت بنت السبيت شايب الديبمن ولد الشريا والهاص تحليل اسماء وشخصيات
0 HD Touch HTC
0 HTC Touch 3G

منتديات فراشة حواء - للبنات للنساء للستات للحريم
اغاني اسلامية اغاني جديدة اشرطة اناشيد جديدة احدث الاغاني افضل الاناشيد اخر و احلى الالبومات
كتب اكترونية

دليل مواقع الفوركس والمتاجرة الالكترونية


التعديل الأخير تم بواسطة البدر ; 02-11-2007 الساعة 07:35 PM.
رد مع اقتباس
  #2 (permalink)  
قديم 02-11-2007, 09:38 PM
صورة AFROTTO
طالب ابتدائي
 
تاريخ التسجيل: Jan 2007
البلد - المكان و السكن :
السيرة :
الهواية :
الوظيفة - العمل:
الجنس :
الجنسية :
موقع :
الجوال الموبايل :
مشاركات : 59
العمر :
شكرا بدر على المعلومات الجميلة

وياريات تبقى تشوف الموضوع دة

من [فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات . إضغط هنا للتسجيل]


من مواضيعي 0 دلوقتى تقدر تغير خط موبايلك (للجيل الثالث)
0 100 أستايل أجنبى هدية للجميع
0 هام لكل المسلمين ...شاب كافر يلعن الآمة الآسلامية والمصريين
0 اخر اصدار فلاش شات و حصري جدا FlashChat_
0 حصريااا DigiChat AV 5 مرخص مع كراك

منتديات فراشة حواء - للبنات للنساء للستات للحريم
اغاني اسلامية اغاني جديدة اشرطة اناشيد جديدة احدث الاغاني افضل الاناشيد اخر و احلى الالبومات
كتب اكترونية

دليل مواقع الفوركس والمتاجرة الالكترونية

رد مع اقتباس
  #5 (permalink)  
قديم 02-17-2007, 07:21 PM
صورة ياخذ ومايعطي
طالب ابتدائي
 
تاريخ التسجيل: Jan 2007
البلد - المكان و السكن :
السيرة :
الهواية :
الوظيفة - العمل:
الجنس :
الجنسية :
موقع :
الجوال الموبايل :
مشاركات : 77
العمر :
شكر اخونا بدر في اللي تعاليق بس راح اكتفي فقط على تعليق على شي بسيط اخي البدر
العلامة ^ تستخدم دائماً للدلالة على بداية الرابط الأول
العلامة $ تستخدم دائماً للدلالة على نهاية الرابط الأول

هذا خطئ انما علامة الاوله هي مفتاح امر الاباتشي يعني اي امر يتبع متغير يعني رابط او ماشابه يبتدي في هذا الرمز
وانما اشارة $ تعتبر متغير في بعض الاحيان وتعتبر نهاية الامر طبعا اذا كان الامر امر تغير



صراحه انا دجه ماعرف اعبر عنها خخخخخخخخخـ يعني راقب اوامر الاباتشي او ملف الهيتكس راح تشوف الامرين يمرون معاك في عدة حالات طبعن كلامي عشان انتشار التوضيح الاكثر قلبي

ّ


من مواضيعي 0 الهاك الجبار في الحمايه منع من استغلال القواعد يمنع التحويل تحكم في كل شي ء من الفريق الامني
0 جرب قوة هاك الحماية واطمئن على منتداك جرب وشوفه Islam swords team
0 you ولا هنت ياريت ترقي لي الاستايل لموقع اسلامي
0 مصيبة you انت مافي غيرك عليها تعال احذف اللي الاحصائيات لانك بكرا تحتاج تسويها بنفسك وشوف السبب
0 في بي ادفانسد الإصدار الأخير vBadvanced CMPS 2.2.1

منتديات فراشة حواء - للبنات للنساء للستات للحريم
اغاني اسلامية اغاني جديدة اشرطة اناشيد جديدة احدث الاغاني افضل الاناشيد اخر و احلى الالبومات
كتب اكترونية

دليل مواقع الفوركس والمتاجرة الالكترونية

رد مع اقتباس
إضافة رد على خاصية mod_rewrite - شرح مفصل

مواقع النشر


أدوات الموضوع
انواع عرض الموضوع



الساعة الآن 10:36 PM.


للإعلان بالموقع    |    اتصـل بنــا

Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd diamond


SEO by vBSEO 3.1.0