بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
اخواني الاحباب
الكثير منا لا يعرف ما هو ملف htaccess. وما هي وظيفته وكيفية الإستفادة منه
وذلك كان السبب الرئيسي لطرحي هذه المشاركة كي نتعرف عليه عن قرب ... فما هو هذا الملف المجهول للكثير منا
ملف الـ htaccess. هو عبارة عن ملف يتواجد عادة بين ملفات الموقع وربما يكون مخفيا بحيث لا يظهر من خلال برامج FTP لكن في أغلب الأحيان يكون ظاهرا.
و وظيفة هذا الملف انه يساعدنا في التحكم في الكثير من خصائص الموقع و الملفات ... وذلك من خلال أوامر يتم إدخالها في هذا الملف ... وبالتالي يقوم بقراءة هذه الأوامر وتنفيذها على ملفات الموقع ..
و يحتوي هذا الملف علي الكثير من الأوامر التي يمكننا الاستفادة منها فنذكر منها ...
عمل صفحات الأخطاء , كالتي تراها عندما تدخل إلى صفحة خطأ في موقع ما .. custom error messages
حماية مجلدات الموقع باسم مستخدم وكلمة مرور ..
توجيه صفحة البداية للموقع أو لمجلد على الموقع .. كأن تكون مثلا .. main.html بدلا من index.html
تعريف السيرفر المستضيف للموقع بأوامر SSI التي تصممها لموقعك ...
حماية الباندويث في الموقع من الاستهلاك الخارجي .. سواء في الملفات والصور ..
توجيه صفحة قديمة في الموقع إلى صفحة جديدة بدلا منها ..
إخفاء محتويات المجلد عن الأعضاء أو نوع معين من الملفات فقط في المجلد ..
حجب الموقع عن الزوار من دولة معينة أو جعله لزوار دولة معينة أو حجبه عن IP محدد ..
تعريف الخادم بلاحقات الملفات باستخدام Mime Types
وهناك أيضا الكثير من الأوامر الأخرى ... ولكن سنكتفي بشرح هذه الأوامر لكثرة استخدامها ..
اذن ... كيف ننشئ ملف الـ htaccess. حتي نستفيد منه او كيف نقوم بتحريرة و كتابة اوامرة ؟
يتم إنشاء ملف htaccess. جديد من خلال أي محرر نصوص .. وليكن مثلا المفكرة notebad .أو PHP Coder أو أي برنامج محرر اوامر اخر . ومن ثم حفظ الملف بالاسم التالي كاملا :
"htaccess."
طبعا بدون علامات الإقتباس هذه "-"
----------------------------------------
كيف ننشئ صفحة أخطاء ؟
بداية لا بد من شرح الأخطاء المحتملة لدخول الزوار إلى صفحات الموقع او المنتدي وهي :
400 - Bad Request .. وتعني طلب خاطئ للصفحة
401 - Authorization Required ... وتعني انه غير مرخص للزائر بعرض الصفحة
403 - Forbidden .. وتعني انه ممنوع للزائر من دخول الصفحة
404 - File not found ... وتعني أن الصفحة التي قام الزائر بطلبها غير موجودة
500 - Internal Server Error وتعني أن هناك خطأ في خادم الموقع
503 - Service Unavailable ... وتعني أن الخدمة غير متوفرة
هذه هي الأخطاء الشائعة وهناك المزيد منها ..
لعمل صفحة الخطأ نكتب في ملف htaccess. الكود التالي :
كود PHP:
ErrorDocument [error number] [path]
ولتفصيل هذا الأمر ..
ErrorDocument .. وهي الدالة الخاصة بصفحة تعيين صفحة الخطأ .
error number ... رقم الخطأ الذي سيظهر للمتصفح ... كما هو مشروح في الأعلى
path .. مسار الخاص بالصفحة التي ستظهر للزائر عندما يطلب صفحة خطأ .
والأمر بالكامل كما يلي :
كود PHP:
ErrorDocument 404 http://mwadah.com/404.html
كما تلاحظ .. وضعنا رقم الخطأ ومسار الصفحة الخاصة به ..
ولإدراج بقية الأخطاء ضعها الأوامر في الملف بشكل متتالي .. مثال :
كود PHP:
ErrorDocument 400 http://mwadah.com/400.html
ErrorDocument 401 http://mwadah.com/401.html
etc ...
و هكذا ......
---------------------------------------
حماية مجلدات وملفات الموقع ...
هل دخلت مرة إلى صفحة ما في موقع وظهرت لك نافذة تطلب منك إدخال اسم مستخدم وكلمة مرور ؟؟
بالتأكيد مررت على كثير من هذه الصفحات ولم تستطع دخولها .. وذلك لأنها خاصة بمستخدمين معيين .. وما شابه ذلك .. هذا النوع من الحماية يسمى basic HTTP authentication ..
الآن سنتعلم كيف تعمل مثل هذه الصفحات في موقعك ..
"ملحوظة"
"يمكن عمل تلك الحماية عن طريق صفحة لوحة تحكم الموقع ... و لمزيد من المعلومات راجاء زيارة هذا الموضوع "
لنفرض أن لديك مجلد على الموقع فيه عدة صفحات لا تريد عرضها إلا لمجموعة مستخدمين على نطاق ضيق .. ماذا ستفعل ؟؟
في الواقع هناك الكثير من أنواع الحماية باستخدام لغات البرمجة كـ PHP أو جافا سكربت أو غيرها .. ولكن الأقوى هي الحماية بواسطة أوامر htaccess.
كل ما عليك هو أن تنشئ ملف htaccess. جديد وتضع فيه الكود التالي ثم تضعه في المجلد الذي ترغب بحمايته :
كود PHP:
Username1:Password1
Username2:Password2
Username3:Password3
طبعا هنا تستبدل Username1 باسم المستخدم و Password1 بكلمة المرور الخاصة به .. وإذا أردت مزيدا من الأمن لكلمة المرور فيمكن أن تشفرها بأحد أدوات التشفير المستخدمة في أنظمة يونيكس والمتوفرة بكثرة في مواقع النت .. وفي هذه الحالة طبعا ستضع مكان Password1 كلمة المرور المشفرة ..
وعند عملية الدخول سيدخل المستخدم كلمة المرور قبل تشفيرها .. وستظهر في الملف بهذا الشكل تقريبا :
كود PHP:
admin:vrAQKeuzMpslh
طبعا يمكنك وضع أي عدد ترغب به من المستخدمين ...
بعد ذلك سوف تحتاج لوضع الكود الخاص بالقائمة التي ستطلب من المستخدم إدخال الاسم وكلمة المرور وهو الكود التالي :
كود PHP:
AuthUserFile /usr/local/you/safedir/.htpasswd
AuthGroupFile /dev/null
AuthName [أدخل اسم المستخدم و كلمة المرور]
AuthType Basic
<Limit GET POST>
order allow,deny
allow from all
require valid-user
</limit>
حيث أن /usr/local/you/safedir/.htpasswd هو مسار ملف htaccess. الذي وضعنا فيه أسماء المستخدمين المصرح لهم بالدخول وكلمات المرور الخاصة بهم ..
ويمكن الدخول للمجلد المحمي مباشرة عن طريق وضع الرابط التالي في المتصفح :
كود PHP:
http://username:password@www.website.com/directory/
فقط ضع اسم المستخدم وكلمة المرور وعنوان الموقع والمجلد المحمي ..
وأما إذا رغبت بحماية أحد ملفات الموقع بحيث يكون تصفح أو تحميل الملف للمجموعة التي حددتها فقط ...فهنا ستستخدم الكود التالي :
كود PHP:
<files "prog.exe|pass.php|file.zip">
AuthUserFile [/path/to/file]
AuthType Basic
AuthName [Text that prompts the user]
require valid-user
فقط عدل أسماء الملفات في السطر الأول كما ترغب .. وفي السطر الثاني تضع مسار ملف htaccess. الذي وضعنا فيه أسماء المستخدمين المصرح لهم بالدخول وكلمات المرور الخاصة بهم .. تماما كما فعلنا في حماية المجلد ..
يمكنك أيضا هنا وضع العدد الذي ترغب به من الملفات لكي تحميها .. أو تجعلها فقط لمجموعة محددة...
يتبع ان شاء الله تعالي
مواقع النشر (المفضلة)