تم شرح هذا الدرس بالتعاون مع موقع سوفت وير العرب و syriahacker.com
-
في رمضان من سنة 2007
----------------------------------------------------------
لا بد و انك سمعت مسبقا عن ملف htaccess ، ما هو هذا الملف و ما
استخداماته ، و ما فائدتة ، و كيف يمكنني أن استفيد من هذا الملف في موقعي
تعالوا بنا في هذه الرحلة ، محاولين الاجابة على هذه الاسئلة سوياً
ماهي هذه الملفات ؟
هي ملفات مخفية ، تستخدم مع مخدم الويب الاباتشي (المخدم الاشهر
عالميا للويب) ،و تسبق عادة الملفات المخفية في نظام تشيغيل السيرفر
بنقطة أي يكتب الملف تحت اسم .htaccess
و كما هو نظام انشاء الملفات في اللينوكس ، الملف يمكن أن لا يحتوي على
لاحقة (على عكس نظام الويندوز الذي يفرض وضع لاحقة للملف لا تقل عن
ثلاث أحرف)
انشاء htaccess !
لكيتنشأ htaccess افتح أي محرر نصوص وليكن المفكرة و احفظ الملف
باسم htaccess ، و انتبه لعدم و جود لاحقة للملف ليعمل بشكل صحيح
عندما استخدامه في موقعك او حتى على سيرفر محلي
ثم من على موقعك يمكنك اعادة تسميته و اذافة النقطة الى بدايته (لانك لا
تستطيع فعل ذلك على نظام الويندوز ، الذي يفهم أن ما قبل النقطة اسم
الملف و ما بعدها لاحقة لها )
و بذلك تكون قد أنشأت ملف .htaccess فارغ ،لا يحوي أي تعليمات .
ملاحظة : لا يمكن رؤية الملف هذا من لوحة تحكم الموقع بدون اظهار
الملفات المخفية ، و يمكن رؤيته بسهولة من برامج رفع الاف تي بي
كبرنامج flashxp و انتبه على تصريح الملف ، الذي يجب أن يكون قراءة و
كتابة من المخدم ، و قراءة فقط للباقي أي يكون التصاريح CHMOD 644
فوائد htaccess وكيف استخدمها ؟
اذا ما نعرف عن هذه الملفات هي توفير الحماية لمجلدات موقعك , اما بمنع
الوصول اوتعطيل خواص , ان ملفات htaccess مفيدة جدا في تطبيقات
الصفحات و من هذا الفوائد :
1-وثائق صفحات الخطأ .
و هذا دليل متكامل لاهم صفحات الخطأ سوف اختصر قد الامكان
أخطاء ممكن أن تعرض للزوار
كود بلغة HTML:
400 Bad Request
401 Authorization Required
402 Payment Required (not used yet)
403 Forbidden
404 Not Found وهذا الخطأ لعدم توفر الصفحة .
405 Method Not Allowed
406 Not Acceptable (encoding)
407 Proxy Authentication Required
408 Request Timed Out
409 Conflicting Request
410 Gone
411 ******* Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type
انواع اخطاء السيرفر الخادم .
كود:
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
واهم هذه الاخطاء التي أخطاء تعرض للزوار وسوف اشرح بعضها :
كود:
400 - Bad Request ..كود:
وتعني طلب خاطئ للصفحة
401 - Authorization Required ... وتعني انه غير مرخص للزائر بعرض الصفحة
403 - Forbidden .. وتعني انه ممنوع للزائر من دخول الصفحة
404 - File not found ... وتعني أن الصفحة التي قام الزائر بطلبها غير موجودة
500 - Internal Server Error وتعني أن هناك خطأ في خادم الموقع
503 - Service Unavailable ... وتعني أنالخدمة غير متوفرة[/HTMLالان استخدام htaccess في عمل صفحات الخطأ .
اعمل ملف باسم htaccess. وضع بداخلة التالي :
كود:
Error******** [عنوان الخطأ ] [رقم الخطاء]Error******** وهي الدالة الخاصة بصفحة بتعيين صفحة الخطأ
مثال
:
كود:
Error******** 400 /errors/badrequest.html
Error******** 401 /errors/authreqd.html
Error******** 403 /errors/forbid.html
Error******** 404 /errors/notfound.html
Error******** 500 /errors/serverr.html
الان اعمل مجلد في موقعكبهذا الشكل
yoursite.com/errors/
يحتوي على هذا الصفحات notfound.html و badrequest.html و authreqd.html و forbid.html و serverr.html واكتب بها ما يناسبك .
2- حماية المجلدات بكلمة سر .
و يعرف هذا النوع منالحماية بـ basic HTTP authentication
و تحتاج لعمل حماية بستخدام htaccess لعمل ملف اخر باسم .htpانا قليل الادب اطردوني من هذا المنتدى المحترم يلا !!!!wd لوضع
الارقام السرية بداخلة و يفضل تشفيرها و كذلكوضعها في مجلد مجاور الى مجلد
www الرئيس في موقعك .
مثال :
اعمل ملف htaccess وضع في داخلة التالي AuthUserFile
AuthUserFile /usr/local/you/safedir/.htpانا قليل الادب اطردوني من هذا المنتدى المحترم يلا !!!!wd
AuthGroupFile /dev/null
AuthName [أدخل اسم المستخدم و كلمة المرور]
AuthType Basic
order allow,deny
allow from all
require valid-user
مثال اخر
كود PHP:
كود:
AuthType Basic
AuthName "stop"
AuthUserFile "/home/اسم المستخدم لموقعك /.htpانا قليل الادب اطردوني من هذا المنتدى المحترم يلا !!!!wds/ "
require valid-user
ويفضل ان يكون ملف الارقامالسرية في مجلد مجاور مجلد www
و يحتوي ملف .htpانا قليل الادب اطردوني من هذا المنتدى المحترم يلا !!!!wds على الارقام السريةويكون بهذا الشكل :
Username1:Pانا قليل الادب اطردوني من هذا المنتدى المحترم يلا !!!!word1
Username1 مثلا badr و Pانا قليل الادب اطردوني من هذا المنتدى المحترم يلا !!!!word1 مشفر md5 ويكون بهذا الشكل
كود PHP:
badr:e1a378b86bc5c0203239b935e2964ba3
4- مَنْع زوار دولة معينة او ip معين من الوصول الى موقعك .
حجب الموقع عن الزوار من دولة معينة أو جعله لزوار دولة معينة أو حجبهعن IP محدد
أحيانا يرغب البعض بحجب الموقع عن إحدى الدول .. أو جعله مخصصلدولة معينة
أو حتى نطاق معين من الـ IP .. أو قد يسيء شخص ما إلى موقعك ولدى هذاالشخص
IP ثابت وتريد منعه من العبث .. ماذا تعمل في مثل هذه الحالات .؟
ملف htaccess. يعينك كثيرا في هذا الأمر ... فإذا أردت حجب الموقع عن IP
معين .. فقط ضعفي ملف htaccess. الموجود في جذر موقعك الكود التالي :
كود PHP:
deny from 000.000.000.000
وأما إذا أردت أن تجعلهمتاحا لـ IP واحد فقط فهنا ستضع الكود المعاكس التالي :
كود PHP:
allow from 000.000.000.000
ويمكن إضافة العدد الذيترغب به من الـ IP التي تريد حجبها .. فقط قم بوضع كل IP بسطر ..مثال
كود PHP:
deny from 192.168.10.9
deny from 192.168.0.1
allow from 82.137.200.17
allow from 82.137.200.19
وفي حال تركت الخانةالأخيرة من رقم الـ IP فارغة فأنت هنا تكون قد منعت نطاق كاملا ( دولة في الغالب ) من تصفح موقعك .. مثال :
كود PHP:
deny from 000.000.000.
وكذلك تفعل في حالأردت السماح فقط لنطاق معين في تصفح الموقع ..
كود PHP:
allow from 000.000.000.
وأما إذا أردتمنع الجميع من تصفح الموقع .. فاستخدم الكود التالي :
كود PHP:
deny from all
و لكي لا أطيل عليكم سنكمل مهام هذا الملف في درس لاحق .
و سيتناول ان شاء الله النقاط التالية :
حماية ملف او صور ، تَمْكين ssl عن طريق htaccess ،
مَنْع الروبوتاتِ السيئةِ والموقعِ rippers المعروف باسم المتصفّحات الغير
متَّصلة ،
تغيير اسم الصفحات الاصلية في موقعك،عمل دومين فرعين، اعادة
التوجيه
مراجع الموضوع
Apache.org
Htaccess.info
ومواقع أخرى مختصة باللينوكس و الاباتشي
و السلام عليك و رحمة الله و بركاته
لكم تحياتي كاتب الموضوع
محمود حبق و غيفار