المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : تحويل URLs المواقع الديناميكية إلى friendly urls


shref
22 Dec 2004, 05:53 AM
بسم الله الرحمن الرحيم

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

الموضوع يعتمد على اعدادات سيرفر اباتشى فسيكون التعامل عبر ملف htaccess.

لكن قبل البدء فى النقاش وجب على ان اوضح المقصود مما سنفعله و بعض من الأسباب التى دفعتنا الى هذا

و سنأخذ كمثال للغات برمجة المواقع الديناميكية لغة php

فعندما نتصفح احد هذه المواقع نجد عناوين او بالأصح URLs الصفحات كهذا المثال

http://www.saven7.com/index.php?s=526&id=flash

للتوضيح : كلاً من s و id متغيرات داخل الصفحة index.php تم تمريرها عبر الـ URL لتنفيذ قيمها

و هذا ما نريد تغييره لأسباب منها
1 - محركات البحث مثل جوجل تضع تقييم اقل لمثل هذه الـ URLs لأنها تعتبر مضللة و تعيق عملية البحث السليم.
2 - هذه العناوين صعبة و غير عملية بالنسبة للمستخدم العادى .
3 - فقدان العامل الأمنى - حيث من طرق اختراق المواقع هو تمرير معطيات ديناميكية تتفاعل داخل الملف مسببة إما مسح لبيانات او جلب معلومات سرية عن قاعدة البيانات و ما إلى ذلك.
عموما لنبدء الأن قم بعمل ملف جديد بإسم htaccess.
ضع به هذا الكود

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^s-([0-9]+)/([0-9A-Za-z]+).html index.php?s=$1&id=$2ربما الكود غير واضح بعض الشئ

---- انسخه و اطبعه فى اى محرر مثل Notepad و سيظهر بشكل واضح إنشاء الله

لن اطيل عليكم و سأوضح ما نريده
فى السطر الثالث : 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.saven7.com/index.php?s=254&id=flash

سيكون بعدها بهذا الشكل
www.saven7.com/s-254/flash.html

.................................................. .................................................. .............
ملاحظات :

ضع ملف htaccess. فى نفس المجلد الحاوى للملف المنفذة عليه العملية ( فى المثال كان الملف هو index.php )

regular expretions : هى اسلوب او وسيلة لعمل قوالب حرفية --- اى ان اكون بها مقياس لشكل و ترتيب مجموعة من حروف
كما فى هذا المثال البسيط

(+[9-0])-s^ معناها ان اول حرف يجب ان يكون s و ذلك لأن سبقتها العلامة ^ ثم ثانى حرف هو الرمز - ( dash )
ثم يليها اى رقم من 1 الى 9 و علامة + ( plus ) تفيد بأن الرقم من الممكن ان يتكرر مرة او اكثر

*** بالطبع يمكنك البحث اكثر عن regular expretions لتعرفها بالتفصيل ***

انا اسف c: جدا على تشعب الموضوع لكن هذا لفهم جميع النقاط

و إنشاء الله انا مستعد لأى استفسار

سلام ~o

syria_star
30 Dec 2004, 07:27 PM
السلام عليكم ورحمة الله وبركاته

ماشاء الله اخى درس مفيد جدا جدا الله يجزيك كل خير وانا بحاول اطبقه
الله يعطيك الف عافيه
وان شاء الله الكل بيستفيد من درسك

وتقبل تحياتي,,

shref
30 Dec 2004, 10:10 PM
اهلا مشرفتنا
الدرس مهم جدا
و صعب بعض الشئ للمبتدئين
-- لكن طبعا مش صعب على استاذتنا ~o

للأسف انا لم امهد له بدروس عن php لكى يستوعبه المبتدئين
لكن إنشاء الله تتعوض قريبا

و تقبلى خالص تحياتى ,, ~o