
المشاركة الأصلية كتبت بواسطة عبدالكريم ابو السعود
ممكن شرح مفصل الى السطر التالي
أخي الكريم عبدالكريم:
وجودك يسعدني
كود:
RewriteCond %{HTTP_HOST} ^doroos.net [NC]
RewriteRule ^(.*)$ http://www.doroos.net/$1 [L,R=301]
السطر الأول يضع شرط التحويل .. وهو إذا كان نطاق العنوان doroos.net
فليتم تحويل العنوان بالكامل إلى العنوان الثاني ..
* تعني إذا كان هناك بعد اسم النطاق ملف مطلوب أو مجلد .. أما إذا أردنا أن نقول لا يهم أن يكون بعد النطاق شيء فعندها نستخدم + ..
^ تعني بداية المطلوب تغييره
$ الأولى تعني نهايته
$ الثانية هي رمز المتغير (مثل php)
R تعني أظهر العنوان الجديد للزائر في المتصفح وكأن العنوان الجديد كان هو المطلوب
301 هو رد السيرفر على الطلب بأن العنوان القديم (المطلوب) تغير إلى العنوان الجديد نهائيا .. وهذا فائدته الكبيرة مع محركات البحث .. لأنها تغير العنوان القديم عندها إلى الجديد ..
L يعني أن هذا آخر أمر من أوامر التحويل في الموقع . هذا الحرف هام وخطير .. إذا كانت لديك عمليات تحويل أخرى في موقعك (سطور mod_rewrite أخرى) فيجب أن تنتبه إلى ترتيب التنفيذ .. فإذا كنت متأكدا أن التحويل لن يتم عليه تحويل آخر فيمكنك استخدام هذا الحرف .. أنبه إلى هذه النقطة لأنني وقعت فيها أثناء تجارب رتب الأولى ..
لنفترض مثلا أنك تحول
كود:
www.racing4e.com/index.php?page=main
إلى:
كود:
www.racing4e.com/main.html
إذن في ملف htaccess عندك:
كود:
RewriteRule ^([A-Za-z]+).html$ index.php?page=$1 [L]
استخدمنا L لأنه لا توجد تحويلات أخرى ستنفذ على هذا التحويل ..
لو أنك تريد الآن استخدام تحويل الأخ السريع فسوف يكون كالتالي:
كود:
RewriteCond %{HTTP_HOST} ^racing4e.com [NC]
RewriteRule ^(.*)$ http://www.racing4e.com/$1 [L,R=301]
لو أنك وضعت السطرين السابقين قبل السطر الأول (الذي فيه تحويلات متغيرات php) لتوقف عمل التحويل الأساسي (السطر الأول) .. ولظهرت الصفحات عند زيارتها بدون www بهذا العنوان:
كود:
www.racing4e.com/index.php?page=main

لذلك يفضل عدم وضع L إلا في آخر عملية تحويل في الملف .. أو إذا كنت متأكدا فلا مشكلة ..