كلنا سمعنا او تعاملنا مع ملفات htaccess ولكن ما وصل الينا من
معرفة قليل جدا عن فوائد هذه الملفات و التي سوف احرص من خلال هذا المقال
توفير اكبر قدر ممكن لأهم فوائد هذه الملفات , التي تتعدى الحماية كما هو
معروف لدينا بل تساعدك في توفير ما تشاء في موقعك من خلال كتابة بعض
الاوامر البسيطة و بذلك يكون استخدامك لها بشكل صحيح و دراية كاملة .
ماهي هذه الملفات ؟
ان
لفظ ملف مبالغ به في وصفها لانها لا تحتوي على امتداد حتى نصفها به بل هي
بكل بساطة htaccess , و تكون هذه الملفات مخفية و لا يمكن عرض محتواها
مباشرة في الموقع , ولكن تستطيع مشاهدها من خلال لوحة التحكم الخاصة
بالموقع عن طريق مدير الملفات او من خلال برامج FTP .
انشاء htaccess !
لكي
تنشيء htaccess افتح أي محرر نصوص وليكن المفكرة و انشاء ملف باسم
htaccess.txt الان قم بحذف txt. في نهاية اسم الملف وبهذا تم عمل htaccess
تحتاج اضافة نقطة في البداية htaccess. ولكن قد يصعب عليك ذلك في جهازك
ولكن ارفع الملف الى موقعك وغير اسمة بستخدام FTP او بستخدام لوحة التحكم
الخاصة بذلك .
فوائد htaccess وكيف استخدمها ؟
ملفات
htaccess يجب أن ترسل الى موقعك ( ترفع ) كنمط آسكي ASCII ، ليس ثنائي
BINARY , ايضا قد تحتاج الى ترخيص ( تصريح ) CHMOD 644 و فائدة هذا
الترخيص هي جعل الملف صالح للاستخدام في الخادم فقط و لا يمكن عرضة من
الزائر او تعديل محتواه وفي الغالب اكثر من يستخدم htaccess يتجاهل هذا
الترخيص و قد يشكل خطر على الموقع اذا كان يحتوي على ارقام سرية مشفرة
يمكن كسرها .
اذا ما نعرف عن هذه الملفات هي توفير الحماية لمجلدات
موقعك , اما بمنع الوصول او تعطيل خواص , ان ملفات htaccess مفيدة جدا في
تطبيقات الصفحات و من هذا الفوائد :
1- وثائق صفحات الخطأ .
و هذا دليل متكامل لاهم صفحات الخطأ سوف اختصر قد الامكان
أخطاء تعرض للزوار
انواع اخطاء السيرفر الخادم .
واهم هذه الاخطاء التي أخطاء تعرض للزوار وسوف اشرح بعضها :
الان استخدام htaccess في عمل صفحات الخطأ .
اعمل ملف باسم htaccess. وضع بداخلة التالي :
ErrorDocument .. وهي الدالة الخاصة بصفحة بتعيين صفحة الخطأ
مثال
الان اعمل مجلد في موقعك بهذا الشكل
yoursite.com/errors/
يحتوي على هذا الصفحات notfound.html و badrequest.html و authreqd.html و forbid.html و serverr.html و اكتب بها ما يناسبك .
2- حماية المجلدات بكلمة سر .
و يعرف هذا النوع من الحماية بـ basic HTTP authentication
و
تحتاج لعمل حماية بستخدام htaccess لعمل ملف اخر باسم .htpasswd لوضع
الارقام السرية بداخلة و يفضل تشفيرها و كذلك وضعها في مجلد مجاور الى
مجلد www الرئيس في موقعك .
مثال :
اعمل ملف htaccess وضع في داخلة التالي :
مثال اخر
ويفضل ان يكون ملف الارقام السرية في مجلد مجاور مجلد www
و يحتوي ملف .htpasswds على الارقام السرية ويكون بهذا الشكل :
Username1:Password1
Username1 مثلا badr و Password1 مشفر md5 ويكون بهذا الشكل
حماية ملف او صور
في السطر الاول اسماء الملفات التي ترغب بحمايتها و
الثاني أسماء المستخدمين المصرح لهم بالدخول وكلمات المرور الخاصة بهم ..
تماما كما فعلنا في حماية المجلد ..
يمكنك أيضا هنا وضع العدد الذي ترغب به من الملفات لكي تحميها .. أو تجعلها فقط لمجموعة محددة...
3- تَمْكين ssl عن طريق htaccess
تعريف السرفر المستضيف للموقع بأوامر SSI التي تصممها لموقعك
SSI هي اختصار لـ Server Side Includes
وهو
بروتوكول خاص بتضمين الكود لجميع الصفحات فإذا أردت مثلا وضع كود معين أو
لنفرض هيدر لكل الصفحات فليس من الضروري وضعه في جميع صفحات الموقع وإنما
من خلال SSI تضعه في صفحة واحدة ثم تضع شفرة SSI في رأس كل ملف ...
في
بعض الأحيان عندما تنشئ صفحة أو برنامج تحتوي على أوامر SSI وترفعها إلى
موقعك تجد أن الملف لا يعمل .. والسبب يعود في ذلك إلى عدم تعريف هذا
الملف للسرفر ..
كل ما عليك فعله هو تعريف الملف الذي يحتوي على أوامر SSI للسرفر عن طريق ملف htaccess. وذلك بواسطة الكود التالي :
حيث أن [Extension 1] و [Extension 2] هي امتداد
الملفات التي تريد للسرفر أن يتعرف عليها ليعطيها الصلاحية بتنفيذ أوامر
الـ SSI بشكل اتوماتيكي ..
مثال ذلك :
حيث الملفات التي تعطي أوامر للسرفر باستقبال أوامر الـ SSI هي الملفات التي تنتهي بالامتداد .. dhtml و html
4- مَنْع زوار دولة معينة او ip معين من الوصول الى موقعك .
حجب الموقع عن الزوار من دولة معينة أو جعله لزوار دولة معينة أو حجبه عن IP محدد
أحيانا
يرغب البعض بحجب الموقع عن إحدى الدول .. أو جعله مخصص لدولة معينة أو حتى
نطاق معين من الـ IP .. أو قد يسيء شخص ما إلى موقعك ولدى هذا الشخص IP
ثابت وتريد منعه من العبث .. ماذا تعمل في مثل هذه الحالات .؟
ملف
htaccess. يعينك كثيرا في هذا الأمر ... فإذا أردت حجب الموقع عن IP معين
.. فقط ضع في ملف htaccess. الموجود في جذر موقعك الكود التالي :
وأما إذا أردت أن تجعله متاحا لـ IP واحد فقط فهنا ستضع الكود المعاكس التالي :
ويمكن إضافة العدد الذي ترغب به من الـ IP التي تريد حجبها .. فقط قم بوضع كل IP بسطر ..مثال
وفي حال تركت الخانة الأخيرة من رقم الـ IP فارغة فأنت هنا تكون قد منعت نطاق كاملا ( دولة في الغالب ) من تصفح موقعك .. مثال :
وكذلك تفعل في حال أردت السماح فقط لنطاق معين في تصفح الموقع ..
وأما إذا أردت منع الجميع من تصفح الموقع .. فاستخدم الكود التالي :
5- مَنْع الروبوتاتِ السيئةِ والموقعِ rippers (المعروف باسم المتصفّحات الغير متَّصلة)
ومثال لذلك مع ان معرفتي قليلة بذلك ومنها
البقية و لتفصيل أكثر
6- تغيير اسم الصفحات الاصلية في موقعك .في
العادة تحتاج الى تغيير اسماء صفحات موقعك لنفرض ان لديك صفحة باسم home
.php وتريد تغييرها الى امتداد اخر مثل ar و توجد هذه الصفحة في مجلد باسم
jadweb اعمل ملف باسم htaccess. وضع في داخلة التالي :
تستطيع تكرار ذلك مع تغيير اسم الصفحات التي ترغب بتعديلها .
7- عمل دومين فرعين .
8- اعادة التوجية .
توجيه صفحة البداية للموقع أو لمجلد على الموقع
عند
رفع ملف باسم index.php او index.html او index.htm او home.php او
home.htm وغيرها تكون هي الصفحة الرئيسية لموقعك و هذه الاعدادات تكون في
Apache الخاص بالخادم و تكون بهذا الشكل :
الدالة DirectoryIndex مهمتها التعريف أن أسماء الصفحات التي تلي الدالة هي صفحات البداية للموقع ..
كيف يقرأ ملف htaccess. هذه الدالة :
يبدأ
باسم أول صفحة وهي index.htm فإن وجدها على الموقع فسيعتبرها هي ملف
الصفحة الرئيسية ..والا سينتقل للاسم الثاني index.html .. وهكذا ..
الآن
لنفرض أن صفحة البداية لموقعك اسمها مختلف .. مثلا .. user.htm فهنا ستضع
هذا الاسم بعد الدالة DirectoryIndex مباشرا ... وهنا ستكون هذه الصفحة هي
صفحة البداية فعلا ..
فالدالة هي :
ومكان file يكون اسم الصفحة المطلوبة
توجيه الصفحات القديمة في الموقع
لنفرض
انه يوجد على الموقع منتدى .. وأعضاؤك يعرفون الرابط المباشر له .. ثم قمت
بتغير اسم مجلد المنتدى .. فكيف ستوجه الزوار إلى الرابط الجديد ؟؟
هناك
الكثير من الحلول .. منها إضافة تاج في هيدر الصفحة .. ولكن الأفضل أن يتم
ذلك عن طريق ملف htaccess. تضعه في نفس المجلد القديم .. ثم تضع فيه الكود
التالي
كل ما عليك هو تغير الوصلات في الكود بما يتوافق مع موقعك ...
/olddirectory/oldfile.html تشير إلى الصفحة القديمة
و newdirectory/newfile.html هي العنوان الجديد الذي سيستخدمه زوار الموقع
9- تسريع الصفحات و عرض الصور
.في بعض الاحيان نحتاج تسريع للصفحات و خاصة انه في كل زيارة للصفحة يتم
تحميل الصور و الفلاش مباشرة في كل زيارة لذلك تستطيع ان تلغي ذلك
بتحديثها مره في الشهر وبهذا تكون افضل و اسرع بكثير ولكن تحتاج بعض
اعدادات في السيرفر و ان كان اغلب اصحاب السيرفرات يوفرونها لك و تفعيل
عمل Module mod_expires و تستطيع التحكم بالمدة years months weeks days
hours minutes seconds
مثال اعمل ملف باسم htaccess. وضع التالي في داخلة :
الان سوف عرض الصور مرة واحدة عند اول زيارة لمدة week
اسبوع للصور في الجذر الرئيسي و التي في مجلد image و تم تحديد نوع
الملفات بانها صور من نوع gif , jpg , png تستطيع التحكم كما تشاء .
ايضا الفلاش و ملفات css وغيرها
10- التحكم بتشغيل و تعطيل دوال php على موقعك .
احياناً
قد تحتاج الى تفعيل او تعطيل بعض الدوال في php مع اني لا انصح بذلك خاصة
عند تفعيل بعض الدوال الخطيرة و مثال لتعطيل عمل ملفات php و cgi وغيرها
اعمل ملف باسم htaccess. وضع بداخلة :
مثال لتفعيل عمل بعض الدوال و منها register_globals و
التي تحتاجها البرامج القديمة ويعطلها اصحاب السيرفرات لخطورتها , اعمل
ملف باسم htaccess. و ضع بداخلة
الان تم تفعيل دالة register_globals و لتعطيلها
و الطريقة نفسها مع الدوال الاخرى php_flag name on or off
11- حماية صور موقعك و ملفات موقعك من الارتباط و التحميل من مواقع اخرى .
حماية الباندويث في الموقع من الاستهلاك الخارجي
ربما
لاحظت في كثير من الأحيان وصلات لصور أو ملفات في موقعك في مواقع أخرى ..
وهذا بالطبع قد يتسبب بإيذاء موقعك لأنه سيستهلك الكثير من الباندويث
المخصص لك شهريا ..
اذاُ كيف أجعل عرض الصور التي في موقعي لا تتم إلا من خلال الموقع نفسه ..؟ وكذلك تحميل الملفات ..؟
الحل أيضا هنا يكون باستخدام أوامر ملف htaccess.
لحجب الصور عن الظهور في موقع غير موقعك استخدم الكود التالي :
لاحظ أن هذا الكود يحجب كل وصلات الصور الخارجة من موقعك .. ويمنعها من الظهور إلا في موقعك سواء كان :
http://site.com/
أو
http://www.site.com/
فقط عدل الكود السابق وضع مكان site اسم موقعك ..
والدالة الأخيرة في الكود RewriteRule هي لتحديد لاحقات الصور المراد منعها .. ويمكنك الزيادة عليها كما ترغب ..
وأيضا إضافة لاحقات الملفات التي تريد منع تحميلها من موقعك كالملفات المضغوطة zip , rar .. أو اللاحقات التنفيذية .. exe ..
وبذلك
لن يتمكن أحد من وضع وصلة في موقعه لبرنامج عندك في الموقع .. وإذا فعل
ذلك فلن يعمل معه الرابط .. وعلى الزائر التوجه إلى موقعك والتحميل منه
مباشرة ...
إخفاء محتويات المجلد عن الأعضاء أو نوع معين من الملفات فقط في المجلد
إذا كان لديك في الموقع مجلد وتريد إخفاء محتوياته عن الزوار فما هي الحلول المقترحة لذلك ؟؟
لتوضيح الأمر أكثر ..
لنفرض
أن لديك مجلد في الموقع تضع فيه ملفات للتحميل بشكل مؤقت أو صور أو ما
شابه ذلك .. ولكنك تريد منع الزوار من رؤية محتويات هذا المجلد .. فهناك
عدة طرق لذلك منها إعطاء تراخيص 751 او 111 و الافضل 666 لهذا المجلد ..
ولكن عن طريق ملف htaccess. تستطيع التحكم بذلك بشكل أكبر بكثير ..
فأنت هنا تستطيع منع الزوار من مشاهدة كل محتويات المجلد .. وذلك بوضع الكود التالي في الملف :
لاحظ أن ( * ) تعني جميع الملفات الضمنة داخل المجلد ..
وقد تمنعهم فقط من عرض ملفات الصور وهنا تضع الكود التالي :
ويمكنك إضافة ما تريد من لواحق ملفات الصور والملفات الأخرى كـ zip . rar ..
12- تعريف الخادم بلاحقات الملفات باستخدام Mime Types
في
بعض الأحيان قد لا تعمل ملفات MP3 أو الفلاش أو PHP على الخادم .. والسبب
في ذلك أن تعريف هذه الملفات غير موجود على الخادم .. فإذا كان الخادم
لديك يدعم ملفات MP3 أو PHP ولكن لم تعمل عندك .. فهنا أنت بحاجة إلى
تعريف الخادم بها بواسطة Mime Types ...
فعند إضافتها يخبر الخادم
المتصفح أن هذا الملف هو ملف MP3 أو ملف فلاش .. وبالتالي يكمل المتصفح
المهمة ويقوم بقراءته بالشكل المناسب للملف ..
بالنسبة لـ MIME فهي اختصار لـ Multipurpose Internet Mail Extensions
وهو
أحد البروتوكولات المتخصصة بنقل البيانات غير النصية ( كالصور وملفات
الفيديو و ملفات الفلاش ) عبر الانترنت سواء كان بالمتصفح أو البريد
الالكتروني ( وغالبا يكون للبريد الالكتروني ) ...
ولتعريف ملف فلاش مثلا .. فقط اكتب الكود التالي في ملف htaccess.
بافتراض أن shockwave هو اسم الملف ..
ولتعريف ملف midi استخدم الكود التالي :
ولتعريف ملفات ريل بلير استخدم الكود التالي :
وبنفس المبدأ والطريقة تعمل مع بقية الملفات التي لم
تعمل إلا بتعريفها .. ولكن عادة تكون هذه الأشياء معرفة بشكل افتراضي ولا
حاجة إلى تعريفها إلا إذا دعت الحاجة إلى ذلك ..
13- تعطيل عمل برامج على الخادم .
برنامج mod_security موديل يتوفر في السيرفر من اجل
الحماية وتجد العديد من اصحاب المواقع يعطلون بعض خواصة ومنها
SecFilterScanPOST الذين يستخدمون منتديات vb لحل مشاكل الرد السريع .
منقووول لافادتكم.
معرفة قليل جدا عن فوائد هذه الملفات و التي سوف احرص من خلال هذا المقال
توفير اكبر قدر ممكن لأهم فوائد هذه الملفات , التي تتعدى الحماية كما هو
معروف لدينا بل تساعدك في توفير ما تشاء في موقعك من خلال كتابة بعض
الاوامر البسيطة و بذلك يكون استخدامك لها بشكل صحيح و دراية كاملة .
ماهي هذه الملفات ؟
ان
لفظ ملف مبالغ به في وصفها لانها لا تحتوي على امتداد حتى نصفها به بل هي
بكل بساطة htaccess , و تكون هذه الملفات مخفية و لا يمكن عرض محتواها
مباشرة في الموقع , ولكن تستطيع مشاهدها من خلال لوحة التحكم الخاصة
بالموقع عن طريق مدير الملفات او من خلال برامج FTP .
انشاء htaccess !
لكي
تنشيء htaccess افتح أي محرر نصوص وليكن المفكرة و انشاء ملف باسم
htaccess.txt الان قم بحذف txt. في نهاية اسم الملف وبهذا تم عمل htaccess
تحتاج اضافة نقطة في البداية htaccess. ولكن قد يصعب عليك ذلك في جهازك
ولكن ارفع الملف الى موقعك وغير اسمة بستخدام FTP او بستخدام لوحة التحكم
الخاصة بذلك .
فوائد htaccess وكيف استخدمها ؟
ملفات
htaccess يجب أن ترسل الى موقعك ( ترفع ) كنمط آسكي ASCII ، ليس ثنائي
BINARY , ايضا قد تحتاج الى ترخيص ( تصريح ) CHMOD 644 و فائدة هذا
الترخيص هي جعل الملف صالح للاستخدام في الخادم فقط و لا يمكن عرضة من
الزائر او تعديل محتواه وفي الغالب اكثر من يستخدم htaccess يتجاهل هذا
الترخيص و قد يشكل خطر على الموقع اذا كان يحتوي على ارقام سرية مشفرة
يمكن كسرها .
اذا ما نعرف عن هذه الملفات هي توفير الحماية لمجلدات
موقعك , اما بمنع الوصول او تعطيل خواص , ان ملفات htaccess مفيدة جدا في
تطبيقات الصفحات و من هذا الفوائد :
1- وثائق صفحات الخطأ .
و هذا دليل متكامل لاهم صفحات الخطأ سوف اختصر قد الامكان
أخطاء تعرض للزوار
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 Content 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 ... وتعني أن الخدمة غير متوفرة |
الان استخدام htaccess في عمل صفحات الخطأ .
اعمل ملف باسم htaccess. وضع بداخلة التالي :
ErrorDocument [عنوان الخطأ ] [رقم الخطاء] |
ErrorDocument .. وهي الدالة الخاصة بصفحة بتعيين صفحة الخطأ
مثال
ErrorDocument 400 /errors/badrequest.html ErrorDocument 401 /errors/authreqd.html ErrorDocument 403 /errors/forbid.html ErrorDocument 404 /errors/notfound.html ErrorDocument 500 /errors/serverr.html |
الان اعمل مجلد في موقعك بهذا الشكل
yoursite.com/errors/
يحتوي على هذا الصفحات notfound.html و badrequest.html و authreqd.html و forbid.html و serverr.html و اكتب بها ما يناسبك .
2- حماية المجلدات بكلمة سر .
و يعرف هذا النوع من الحماية بـ basic HTTP authentication
و
تحتاج لعمل حماية بستخدام htaccess لعمل ملف اخر باسم .htpasswd لوضع
الارقام السرية بداخلة و يفضل تشفيرها و كذلك وضعها في مجلد مجاور الى
مجلد www الرئيس في موقعك .
مثال :
اعمل ملف htaccess وضع في داخلة التالي :
AuthUserFile /usr/local/you/safedir/.htpasswd AuthGroupFile /dev/null AuthName [أدخل اسم المستخدم و كلمة المرور] AuthType Basic order allow,deny allow from all require valid-user |
مثال اخر
AuthType Basic AuthName "stop" AuthUserFile "/home/اسم المستخدم لموقعك /.htpasswds/ " require valid-user |
ويفضل ان يكون ملف الارقام السرية في مجلد مجاور مجلد www
و يحتوي ملف .htpasswds على الارقام السرية ويكون بهذا الشكل :
Username1:Password1
Username1 مثلا badr و Password1 مشفر md5 ويكون بهذا الشكل
badr:e1a378b86bc5c0203239b935e2964ba3 |
حماية ملف او صور
AuthUserFile [/path/to/file] AuthType Basic AuthName [Text that prompts the user] require valid-user |
في السطر الاول اسماء الملفات التي ترغب بحمايتها و
الثاني أسماء المستخدمين المصرح لهم بالدخول وكلمات المرور الخاصة بهم ..
تماما كما فعلنا في حماية المجلد ..
يمكنك أيضا هنا وضع العدد الذي ترغب به من الملفات لكي تحميها .. أو تجعلها فقط لمجموعة محددة...
3- تَمْكين ssl عن طريق htaccess
تعريف السرفر المستضيف للموقع بأوامر SSI التي تصممها لموقعك
SSI هي اختصار لـ Server Side Includes
وهو
بروتوكول خاص بتضمين الكود لجميع الصفحات فإذا أردت مثلا وضع كود معين أو
لنفرض هيدر لكل الصفحات فليس من الضروري وضعه في جميع صفحات الموقع وإنما
من خلال SSI تضعه في صفحة واحدة ثم تضع شفرة SSI في رأس كل ملف ...
في
بعض الأحيان عندما تنشئ صفحة أو برنامج تحتوي على أوامر SSI وترفعها إلى
موقعك تجد أن الملف لا يعمل .. والسبب يعود في ذلك إلى عدم تعريف هذا
الملف للسرفر ..
كل ما عليك فعله هو تعريف الملف الذي يحتوي على أوامر SSI للسرفر عن طريق ملف htaccess. وذلك بواسطة الكود التالي :
AddType text/html [Extension 1] [Extension 2] AddHandler server-parsed [Extension 1] [Extension 2] |
حيث أن [Extension 1] و [Extension 2] هي امتداد
الملفات التي تريد للسرفر أن يتعرف عليها ليعطيها الصلاحية بتنفيذ أوامر
الـ SSI بشكل اتوماتيكي ..
مثال ذلك :
AddType text/html .dhtml .html AddHandler server-parsed .dhtml .html |
حيث الملفات التي تعطي أوامر للسرفر باستقبال أوامر الـ SSI هي الملفات التي تنتهي بالامتداد .. dhtml و html
4- مَنْع زوار دولة معينة او ip معين من الوصول الى موقعك .
حجب الموقع عن الزوار من دولة معينة أو جعله لزوار دولة معينة أو حجبه عن IP محدد
أحيانا
يرغب البعض بحجب الموقع عن إحدى الدول .. أو جعله مخصص لدولة معينة أو حتى
نطاق معين من الـ IP .. أو قد يسيء شخص ما إلى موقعك ولدى هذا الشخص IP
ثابت وتريد منعه من العبث .. ماذا تعمل في مثل هذه الحالات .؟
ملف
htaccess. يعينك كثيرا في هذا الأمر ... فإذا أردت حجب الموقع عن IP معين
.. فقط ضع في ملف htaccess. الموجود في جذر موقعك الكود التالي :
deny from 000.000.000.000 |
وأما إذا أردت أن تجعله متاحا لـ IP واحد فقط فهنا ستضع الكود المعاكس التالي :
allow from 000.000.000.000 |
ويمكن إضافة العدد الذي ترغب به من الـ IP التي تريد حجبها .. فقط قم بوضع كل IP بسطر ..مثال
deny from 212.212.212.1 deny from 212.212.212.2 allow from 212.212.212.1 allow from 212.212.212.2 |
وفي حال تركت الخانة الأخيرة من رقم الـ IP فارغة فأنت هنا تكون قد منعت نطاق كاملا ( دولة في الغالب ) من تصفح موقعك .. مثال :
deny from 000.000.000. |
وكذلك تفعل في حال أردت السماح فقط لنطاق معين في تصفح الموقع ..
allow from 000.000.000. |
وأما إذا أردت منع الجميع من تصفح الموقع .. فاستخدم الكود التالي :
deny from all |
5- مَنْع الروبوتاتِ السيئةِ والموقعِ rippers (المعروف باسم المتصفّحات الغير متَّصلة)
ومثال لذلك مع ان معرفتي قليلة بذلك ومنها
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR] RewriteCond %{HTTP_USER_AGENT} ^Bot mailto:craftbot@yahoo.com [OR] RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR] RewriteCond %{HTTP_USER_AGENT} ^Custo [OR] RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR] RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR] RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR] RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR] RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR] RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR] RewriteCond %{HTTP_USER_AGENT} ^HMView [OR] RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Image Stripper [OR] RewriteCond %{HTTP_USER_AGENT} ^Image Sucker [OR] RewriteCond %{HTTP_USER_AGENT} Indy Library [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR] RewriteCond %{HTTP_USER_AGENT} ^Internet Ninja [OR] RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR] RewriteCond %{HTTP_USER_AGENT} ^JOC Web Spider [OR] RewriteCond %{HTTP_USER_AGENT} ^larbin [OR] RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR] RewriteCond %{HTTP_USER_AGENT} ^Website Quester [OR] RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR] RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR] RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR] RewriteCond %{HTTP_USER_AGENT} ^Wget [OR] RewriteCond %{HTTP_USER_AGENT} ^Widow [OR] RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR] RewriteCond %{HTTP_USER_AGENT} ^Xaldon WebSpider [OR] RewriteCond %{HTTP_USER_AGENT} ^Zeus RewriteRule ^.* - [F,L] |
البقية و لتفصيل أكثر
6- تغيير اسم الصفحات الاصلية في موقعك .في
العادة تحتاج الى تغيير اسماء صفحات موقعك لنفرض ان لديك صفحة باسم home
.php وتريد تغييرها الى امتداد اخر مثل ar و توجد هذه الصفحة في مجلد باسم
jadweb اعمل ملف باسم htaccess. وضع في داخلة التالي :
RewriteEngine on RewriteBase /jadweb RewriteRule ^ jadweb/home.ar$ home.php |
تستطيع تكرار ذلك مع تغيير اسم الصفحات التي ترغب بتعديلها .
7- عمل دومين فرعين .
RewriteEngine on RewriteCond %{HTTP_HOST} ^user.website.com [NC] RewriteRule ^(.*)$ /file.php?id=user [R=301] |
8- اعادة التوجية .
توجيه صفحة البداية للموقع أو لمجلد على الموقع
عند
رفع ملف باسم index.php او index.html او index.htm او home.php او
home.htm وغيرها تكون هي الصفحة الرئيسية لموقعك و هذه الاعدادات تكون في
Apache الخاص بالخادم و تكون بهذا الشكل :
DirectoryIndex index.htm index.html index.php |
الدالة DirectoryIndex مهمتها التعريف أن أسماء الصفحات التي تلي الدالة هي صفحات البداية للموقع ..
كيف يقرأ ملف htaccess. هذه الدالة :
يبدأ
باسم أول صفحة وهي index.htm فإن وجدها على الموقع فسيعتبرها هي ملف
الصفحة الرئيسية ..والا سينتقل للاسم الثاني index.html .. وهكذا ..
الآن
لنفرض أن صفحة البداية لموقعك اسمها مختلف .. مثلا .. user.htm فهنا ستضع
هذا الاسم بعد الدالة DirectoryIndex مباشرا ... وهنا ستكون هذه الصفحة هي
صفحة البداية فعلا ..
فالدالة هي :
DirectoryIndex [file] |
ومكان file يكون اسم الصفحة المطلوبة
توجيه الصفحات القديمة في الموقع
لنفرض
انه يوجد على الموقع منتدى .. وأعضاؤك يعرفون الرابط المباشر له .. ثم قمت
بتغير اسم مجلد المنتدى .. فكيف ستوجه الزوار إلى الرابط الجديد ؟؟
هناك
الكثير من الحلول .. منها إضافة تاج في هيدر الصفحة .. ولكن الأفضل أن يتم
ذلك عن طريق ملف htaccess. تضعه في نفس المجلد القديم .. ثم تضع فيه الكود
التالي
Redirect /olddirectory/oldfile.html http://yoursite.com/newdirectory/newfile.html |
كل ما عليك هو تغير الوصلات في الكود بما يتوافق مع موقعك ...
/olddirectory/oldfile.html تشير إلى الصفحة القديمة
و newdirectory/newfile.html هي العنوان الجديد الذي سيستخدمه زوار الموقع
9- تسريع الصفحات و عرض الصور
.في بعض الاحيان نحتاج تسريع للصفحات و خاصة انه في كل زيارة للصفحة يتم
تحميل الصور و الفلاش مباشرة في كل زيارة لذلك تستطيع ان تلغي ذلك
بتحديثها مره في الشهر وبهذا تكون افضل و اسرع بكثير ولكن تحتاج بعض
اعدادات في السيرفر و ان كان اغلب اصحاب السيرفرات يوفرونها لك و تفعيل
عمل Module mod_expires و تستطيع التحكم بالمدة years months weeks days
hours minutes seconds
مثال اعمل ملف باسم htaccess. وضع التالي في داخلة :
ExpiresActive On ExpiresByType image/gif "access 1 week" ExpiresByType image/jpg "access 1 week" ExpiresByType image/jpeg "access 1 week" ExpiresByType image/png "access 1 week" ExpiresByType gif "access 1 week" ExpiresByType jpg "access 1 week" |
الان سوف عرض الصور مرة واحدة عند اول زيارة لمدة week
اسبوع للصور في الجذر الرئيسي و التي في مجلد image و تم تحديد نوع
الملفات بانها صور من نوع gif , jpg , png تستطيع التحكم كما تشاء .
ايضا الفلاش و ملفات css وغيرها
ExpiresByType css/css "access 1 week" ExpiresByType js/js "access 1 week" ExpiresByType application/x-shockwave-flash "access 1 week" ExpiresByType application/x-javascript "access 1 week" |
10- التحكم بتشغيل و تعطيل دوال php على موقعك .
احياناً
قد تحتاج الى تفعيل او تعطيل بعض الدوال في php مع اني لا انصح بذلك خاصة
عند تفعيل بعض الدوال الخطيرة و مثال لتعطيل عمل ملفات php و cgi وغيرها
اعمل ملف باسم htaccess. وضع بداخلة :
deny from all php_flag engine off |
مثال لتفعيل عمل بعض الدوال و منها register_globals و
التي تحتاجها البرامج القديمة ويعطلها اصحاب السيرفرات لخطورتها , اعمل
ملف باسم htaccess. و ضع بداخلة
php_flag register_globals on |
الان تم تفعيل دالة register_globals و لتعطيلها
php_flag register_globals off |
و الطريقة نفسها مع الدوال الاخرى php_flag name on or off
11- حماية صور موقعك و ملفات موقعك من الارتباط و التحميل من مواقع اخرى .
حماية الباندويث في الموقع من الاستهلاك الخارجي
ربما
لاحظت في كثير من الأحيان وصلات لصور أو ملفات في موقعك في مواقع أخرى ..
وهذا بالطبع قد يتسبب بإيذاء موقعك لأنه سيستهلك الكثير من الباندويث
المخصص لك شهريا ..
اذاُ كيف أجعل عرض الصور التي في موقعي لا تتم إلا من خلال الموقع نفسه ..؟ وكذلك تحميل الملفات ..؟
الحل أيضا هنا يكون باستخدام أوامر ملف htaccess.
لحجب الصور عن الظهور في موقع غير موقعك استخدم الكود التالي :
RewriteEngine on RewriteCond %{HTTP_REFERER} ^$ [OR] RewriteCond %{HTTP_REFERER} !^http://site/.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www/.site/.com/.*$ [NC] RewriteRule .*.([jpg|gif|jpe?g]+)$ - [NC,F] |
لاحظ أن هذا الكود يحجب كل وصلات الصور الخارجة من موقعك .. ويمنعها من الظهور إلا في موقعك سواء كان :
http://site.com/
أو
http://www.site.com/
فقط عدل الكود السابق وضع مكان site اسم موقعك ..
والدالة الأخيرة في الكود RewriteRule هي لتحديد لاحقات الصور المراد منعها .. ويمكنك الزيادة عليها كما ترغب ..
وأيضا إضافة لاحقات الملفات التي تريد منع تحميلها من موقعك كالملفات المضغوطة zip , rar .. أو اللاحقات التنفيذية .. exe ..
وبذلك
لن يتمكن أحد من وضع وصلة في موقعه لبرنامج عندك في الموقع .. وإذا فعل
ذلك فلن يعمل معه الرابط .. وعلى الزائر التوجه إلى موقعك والتحميل منه
مباشرة ...
إخفاء محتويات المجلد عن الأعضاء أو نوع معين من الملفات فقط في المجلد
إذا كان لديك في الموقع مجلد وتريد إخفاء محتوياته عن الزوار فما هي الحلول المقترحة لذلك ؟؟
لتوضيح الأمر أكثر ..
لنفرض
أن لديك مجلد في الموقع تضع فيه ملفات للتحميل بشكل مؤقت أو صور أو ما
شابه ذلك .. ولكنك تريد منع الزوار من رؤية محتويات هذا المجلد .. فهناك
عدة طرق لذلك منها إعطاء تراخيص 751 او 111 و الافضل 666 لهذا المجلد ..
ولكن عن طريق ملف htaccess. تستطيع التحكم بذلك بشكل أكبر بكثير ..
فأنت هنا تستطيع منع الزوار من مشاهدة كل محتويات المجلد .. وذلك بوضع الكود التالي في الملف :
IndexIgnore * |
لاحظ أن ( * ) تعني جميع الملفات الضمنة داخل المجلد ..
وقد تمنعهم فقط من عرض ملفات الصور وهنا تضع الكود التالي :
IndexIgnore *.gif *.jpg |
ويمكنك إضافة ما تريد من لواحق ملفات الصور والملفات الأخرى كـ zip . rar ..
12- تعريف الخادم بلاحقات الملفات باستخدام Mime Types
في
بعض الأحيان قد لا تعمل ملفات MP3 أو الفلاش أو PHP على الخادم .. والسبب
في ذلك أن تعريف هذه الملفات غير موجود على الخادم .. فإذا كان الخادم
لديك يدعم ملفات MP3 أو PHP ولكن لم تعمل عندك .. فهنا أنت بحاجة إلى
تعريف الخادم بها بواسطة Mime Types ...
فعند إضافتها يخبر الخادم
المتصفح أن هذا الملف هو ملف MP3 أو ملف فلاش .. وبالتالي يكمل المتصفح
المهمة ويقوم بقراءته بالشكل المناسب للملف ..
بالنسبة لـ MIME فهي اختصار لـ Multipurpose Internet Mail Extensions
وهو
أحد البروتوكولات المتخصصة بنقل البيانات غير النصية ( كالصور وملفات
الفيديو و ملفات الفلاش ) عبر الانترنت سواء كان بالمتصفح أو البريد
الالكتروني ( وغالبا يكون للبريد الالكتروني ) ...
ولتعريف ملف فلاش مثلا .. فقط اكتب الكود التالي في ملف htaccess.
AddType application/x-shockwave-flash swf |
بافتراض أن shockwave هو اسم الملف ..
ولتعريف ملف midi استخدم الكود التالي :
AddType audio/x-midi mid |
ولتعريف ملفات ريل بلير استخدم الكود التالي :
AddType audio/x-pn-realaudio .real |
وبنفس المبدأ والطريقة تعمل مع بقية الملفات التي لم
تعمل إلا بتعريفها .. ولكن عادة تكون هذه الأشياء معرفة بشكل افتراضي ولا
حاجة إلى تعريفها إلا إذا دعت الحاجة إلى ذلك ..
13- تعطيل عمل برامج على الخادم .
SecFilterScanPOST Off |
برنامج mod_security موديل يتوفر في السيرفر من اجل
الحماية وتجد العديد من اصحاب المواقع يعطلون بعض خواصة ومنها
SecFilterScanPOST الذين يستخدمون منتديات vb لحل مشاكل الرد السريع .
منقووول لافادتكم.