بسم الله الرحمن الرحيم
هذا الدرس بسيط و خفيف و هام فى نفس الوقت
و هو يعتمد على اعدادات سيرفر اباتشى فسيكون التعامل عبر ملف سنطلق عليه اسم .htaccess
لكن قبل البدء فى النقاش وجب على ان اوضح المقصود مما سنفعله و بعض من الأسباب التى دفعتنا الى هذا
و سنأخذ كمثال للغات برمجة المواقع الديناميكية لغة php
فعندما نتصفح احد هذه المواقع نجد عناوين او بالأصح URLs الصفحات كهذا المثال
http://www.test.com/...?s=526&id=flash
للتوضيح : كلاً من s و id متغيرات داخل الصفحة index.php تم تمريرها عبر الـ URL لتنفيذ قيمها
و هذا ما نريد تغييره لأسباب منها
1 - محركات البحث مثل جوجل تضع تقييم اقل لمثل هذه الـ URLs لأنها تعتبر مضللة و تعيق عملية البحث السليم.
2 - هذه العناوين صعبة و غير عملية بالنسبة للمستخدم العادى .
عموما لنبدء الأن قم بعمل ملف جديد بإسم htaccess.
ضع به هذا الكود
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !-f
RewriteRule /*^s-([0-9]+)/([0-9A-Za-z]+).html index.php?s=$1&id=$2
فى السطر الرابع :
/*^s-([0-9]+)/([0-9A-Za-z]+).html
دى عبارة عن جملة regular expretion
يمكنك التلاعب بها كما تريد لو لديك الخبرة - ( هذه النقطة مفيدة فى التأمين )-
index.php?s=$1&id=$2 هنا ستكون قيمة المتغير s تساوى 1$
و عند التطبيق سيتم استبدال 1$ بما يطابق ([0-9]+)
و نفس ما حدث يتكرر مع id التى ساويناها مع 2$
و عند التطبيق سيتم استبدال 2$ مع ما ينطبق عليه الشرط ([0-9A-Za-z]+)
بحيث لو كان URL الصفحة هو www.test.com/index.php?s=254&id=flash
سيكون بعدها بهذا الشكل www.test.com/s-254/flash.html
....................................................................................
ملاحظات :
ضع ملف htaccess. فى نفس المجلد الحاوى للملف المنفذة عليه العملية ( فى المثال كان الملف هو index.php )
regular expretions : هى اسلوب او وسيلة لعمل قوالب حرفية --- اى ان اكون بها مقياس لشكل و ترتيب مجموعة من حروف
كما فى هذا المثال البسيط
(+[9-0])-s^ معناها ان اول حرف يجب ان يكون s و ذلك لأن سبقتها العلامة ^ ثم ثانى حرف هو الرمز - ( dash )
ثم يليها اى رقم من 1 الى 9 و علامة + ( plus ) تفيد بأن الرقم من الممكن ان يتكرر مرة او اكثر
*** بالطبع يمكنك البحث اكثر عن regular expretions لتعرفها بالتفصيل ***
الموضوع ليه بقية بس فى وقت اخر إن شاء الله
رجاء المشاركة بسؤال او اقتراح او تعديل او مناقشة و ليس مجرد كلمة شكرا