ملف htaccess.
Ahmed AbuelfatehAhmed Abuelfateh

ملف htaccess.

شرح لـ ما هو ملف htaccess. - إتش تي أكسس - هاتكس، ومتى يمكننا (عدم) إستخدام ملف htaccess، وأهم الأوامر التي نكتبها في ملف htaccess.

ما هو ملف .htaccess؟

يسميه البعض بـ ملف هاتكس أو ملف إتش تي أكسس وكلها مسميات لملف واحد وهو ملف .htaccess، وهو عبارة عن ملف يتيح التعديل على إعدادات خادم الويب لكل مجلد على حدى.

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

لماذا تكتب النقطة قبل إسم ملف htaccess؟

إن كنت من مستخدمي نظام التشغيل ويندوز ولم يسبق لك التعامل مع نظام التشغيل لينكس، فعادة يعتبر هذا السؤال منطقي، وإجابته ببساطه لكي يصبح الملف مخفي (hidden) عن مستخدمي نظام التشغيل. وهي طريقة نظام الماك أيضا، فعند إضافة نقطة قبل إسم أي ملف أو مجلد فإنه يصبح مخفي، ونظرا لأهميه محتويات هذا الملف، فيجب أن يكون خفي (hidden).

متى لا يتم إستخدام ملف .htaccess؟

عادة لا يجب عليك إستخدام ملف .htaccess إذا كان لديك صلاحية الوصول إلى ملف إعدادات الخادم، فإن كنت تستخدم خادم الويب Apache من خلال نظام التشغيل ويندوز (أو بمعنى آخر إن كنت تستخدم خادم ويب محلي أو داخلي localhost) فإن لديك صلاحية الوصول لملف httpd.conf وهو ملف إعدادات خادم الويب الإفتراضي، وسوف تجده في مجلد Apache بداخل مجلد يسمى conf، أما إذا كنت تستخدم شركة إستضافة، فعادة ليس لديك صلاحية الوصول لهذا الملف إلا إذا كنت مشترك في سيرفر خاص، وبالتالي فإن الوسيلة الوحيدة للتعديل على إعدادات الخادم هي من خلال هذا الملف.

السبب الرئيسي في هذه النصيحة بعدم إستخدام هذا الملف إن أمكن، أنه في كل مرة يقوم شخص بزيارة موقعك، فإن خادم الويب سوف يقوم بقراءة محتويات الملف، ثم يقوم بترجمتها وتنفيذها قبل أن يبدأ في تحميل ملفات الموقع نفسه، مما يؤثر بالسلب على أداء وسرعة الموقع، خصوصا إن كان عدد زوار موقعك كبير.

والبديل عن هذا الملف هو كتابة التعليمات أو الأوامر في داخل الوسم الخاص بمسار الموقع في ملف إعدادات الخادم، وعادة ما يكون بالشكل التالي

<Directory "/path/to/public_html">
   # configuration here
</Directory>

وبذلك أصبح لديك المعرفة الأساسية بملف .htaccess وطريقة عمله، ويصبح لديك الخيار في تحديد أين يتم كتابة أوامر إعدادات خادم الويب، سواء في ملف htaccess أو في ملف الإعدادات الأساسي، ويتبقى أن نتعرف على بعض الأوامر الهامة والأساسية لإعدادات خادم الويب Apache.

منع تضمين رابط الموقع في أي إطار خارج الموقع

ويقصد بذلك منع أي شخص من إستخدام رابط موقعك في وسم <iframe>، وبتطبيق هذا الأمر تقوم بحماية موقعك من هجمات الـ clickjacking، ويتم ذلك بالأمر التالي

<IfModule mod_headers.c>
    Header set X-Frame-Options: "sameorigin"
</IfModule>

منع خادم الويب من إظهار أي بيانات خاصة به

عادة عند حدوث أي خطأ في برمجة الموقع يقوم خادم الويب Apache بإضافة معلومات عن الإصدار الحالي في صفحة الخطأ، ولمنع ذلك نكتب الأمر التالي

ServerSignature Off

ولمنع PHP من إظهار أي بيانات خاصة به، نضيف الأمر التالي

<IfModule mod_headers.c>
    Header unset X-Powered-By
</IfModule>

تحديد صفحات خطأ مخصصة

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

  • الخطأ 404: وهو الخطأ الذي يظهر في حالة طلب صفحة أو ملف غير موجود بالموقع، وفي هذا الخطأ يمكنك تصميم صفحة شبيهة بتصميم الموقع لتعلم المستخدم أن الرابط غير صحيح.
  • الخطأ 403: ويعني أن المستخدم يحاول الدخول في مسار غير مصرح له زيارته، وعادة ما يظهر هذا الخطأ نتيجة عدم تحديد صلاحيات الوصول بشكل جيد، وهنا أيضا يمكنك تصميم صفحة مخصصة للمستخدم.
  • الخطأ 500: ويعني وجود مشكلة في أكواد البرمجة الخاصة بالموقع مما يؤدي إلى عدم تمكن الخادم من ترجمة الموقع، وبالتالي لا يمكنك تصميم صفحة لأن الخادم غير قادر على قراءة وترجمة ملفات الموقع، ولكن يمكنك إستبدال النص الإفتراضي لهذا الخطأ.
  • لمعرفة المزيد عن أكواد الأخطاء يمكنك زيارة الرابط التالي https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

لتحديد أكواد الخطأ المخصصة نكتب الكود التالي

ErrorDocument 404 /error_404.php
ErrorDocument 403 /error_403.php
ErrorDocument 500 "Server is dying right now, pray for it"

تحديد نوع تشفير (encode) الملفات الإفتراضي

ويفضل أن تحدد نوع التشفير بـ UTF-8 حيث يمكنك هذا النوع من التعامل مع الحروف المكتوبة بأي لغة غير الإنجليزية، ويتم ذلك بكتابة الأمر التالي

AddDefaultCharset UTF-8

تحديد إمتدادات غير إفتراضية

أحيانا قد تحتاج إلى كتابة ملفات برمجية وتقوم بتغيير الإمتداد الإفتراضي للملف، فعلى سبيل المثال قد تكتب ملف يحتوي على JSON وتقوم بكتابة إمتداد الملف بـ jn، وفي هذه الحالة لن يتعرف الخادم على محتويات هذا الملف، ولكي يتمكن من معرفة اللغة المكتوب بها هذا الملف تقوم بإضافة الأمر التالي

<IfModule mod_mime.c>
    AddType application/json ".jn"
</IfModule>

لاحظ في المثال أننا إستخدمنا التصنيف (mime type) من النوع application/json وهو الخاص بملفات JSON، وبعدها حددنا الإمتداد الذي نرغب بإضافته وفي هذا المثال هو .jn.

4134

Discussion

    • Add new Comment
    • Captcha
      Captcha
    • Notify me of follow up comments via email.