كيفية ضبط ملف .htaccess

إعدادات ملف .htaccess .htaccess تتعلق بمحتوى السجل حيث يوجد الملف، و أيضاً بمحتوى جميع السجلات المتواجدة في مستويات أكثر عمقاً في هذا السجل. إذا كان أحد السجلات الفرعية ملف آخر فإن إعدادات ملف .htaccessستستبدل جميع الإعدادات في الملفات الأعلى مستوىً في هذا السجل الفرعي.

عن طريق ملف .htaccess يمكنك تحديد مجموعة متنوعة من المعلمات و أيضاً تنظيم عملية الوصول. من استخدامات هذا الملف:

  • ضبط إعادة التوجيه;
  • متابعة العناوين الودية للمشاركين;
  • ضبط صفحات الخطأ 404 و 403 لنطاقاتك.;
  • ضبط عملية التخزين المؤقت (Caching);
  • تقييد الوصول إلى الملفات و السجلات
  • ضبط إعدادات أخرى

لضمان السلامة، قمنا بوضع القيود التالية:

  • إلغاء إمكانية التحكم في العلامات باستخدام توجيهات PHPphp_value.
  • توجيه ErrorDocument تم تجاهله;صفحة الخطأ الخاصة يمكن تعيين في الحسابات المستحقة الدفع من قبل تحميلها إلى مجلدerrors/no-fault.html (مثال: errors/404.html).

لنتحقق من بعض الوظائف الأكثر استخداماً لملف .htacess:

عناوين ودية

عندما يتم الدفع بجميع الإستفسارات باتجاه index.php فمن دون ملف .htaccess ستكون العناوين طويلة و معقدة بالشكل التالي happyuser.aba.ae/index.php?q=pagename. تسمح لك خاصية العناوين الودية إلى تغيير هذا حيث تقوم بتوجيه طلب happyuser.aba.ae/pagenameتلقائياً إلى الخادم و إلى index.php.

لنرى سوياً كيف يكون شكل الإعدادات في ملف .htaccess في WordPress:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
    

أولاً يتم التحقق من إذا كانت الوحدة تسمح بإعادة التوجيه (<IfModule mod_rewrite.c>) ثم عن طريق توجيه RewriteEngine و RewriteBase يتم إعداد هذا السجل إلى إعادة التوجيه.

توجيه RewriteRule ^index\.php$ - [L] يقوم بالعمل على عدم توجيه الطلبات الموجهة إلى index.php و يتم حذف شرط آخر من شروط التحويل (علم [L]).

على نحوٍ آخر، إذا كان الطلب غير موجه إلى index.php يتم التحقق من التوجيه التالي RewriteCond- وهو في هذه الحالة اختبار ما إذا كان هناك على هناك على الخادم أي ملف أو دليل في الاستعلام، فإن لم يكن موجوداً، فسيتم إعمال أخر توجيه وهو RewriteRule - و يتم تمرير الطلب إلى index.php.

تقييد الوصول إلى سجل

وظيفة أخرى من وظائف ملف .htaccessالأكثر استخداماً هي خاصية تقييد الوصول إلى الصفحات الفرعية حيث يكون فقط المالك أو برنامج بروتوكول نقل الملفات FTP هم القادرين على الوصول لها، و ليس عن طريق المتصفح. أمثلة من الصفحات المهمة التي يمكن تقييد الوصول لها: فهرس من النسخة الإحتياطية لقاعدة البيانات أو فهرس للبرمجة الداخلية لـ php.

افترض أن الموقع هو سجل فرعي backupsيقوم بتخزين نسخ احتياطية لقواعد البيانات تلقائيا باستخدام وظائف كرون. لتقييد الوصول إلى هذا السجل من الخارج ليس عليك إلا القيام بإنشاء ملف.htaccess داخل السجل.:

Deny from all

و سيقوم الخادم بالرد على أي محاولة دخول بخطأ 403 Forbidden (ممنوع الدخول).و ستكون النسخ الإحتياطية متوفرة فقط عن طريق بروتوكول نقل الملفات FTP الخاص بمالك الموقع.

إعادة توجيه نطاق www الفرعي

على الرغم من أن إضافة نطاق www. واسع الإنتشار، فهو يأتي من الأيام الأولى من تطور الشبكة، عندما لم يكن البروتوكول الأكثر شيوعاً للإتصال بالخادم.

اليوم تقوم العديد من المواقع بإعادة توجيه نطاق www. الفرعي إلى النطاق الرئيسي لاختصار و تبسيط العنوان المبوب المعروض.

في استضافة aba.ae يتم إضافة نطاق www. الفرعي كإسم مستعار "Alias" للنطاقات من دون بادئة "Prefix" - مما يعني أن النطاق سيقوم بعرض نفس الصفحة، و لكن خيار إعادة التوجيه فهو متروك للمستخدم.

لإعادة التوجيه من نطاق www.happyuser.aba.aeإلى نطاق happyuser.aba.aeيجب إدخال الآتي في النطاق الجذري happyuser.aba.ae عن طريق ملف .htaccess:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.happyuser\.aba\.ae$ [NC]
RewriteRule ^(.*)$ http://happyuser.aba.ae/$1 [R=301,L]
    
سيتم تلقائياً إعادة توجيه الإستفسارات الموجهة إلى http://www.happyuser.aba.ae/favorite-page.php إلى http://happyuser.aba.ae/favorite-page.php.