خارطة الموقع برنامج مبيعات ونقاط البيع وجرد المستودعات ومحاسبة الرئيسية من نحن اتصل بنا English
Yazsys.com
منذ عام 2012 - 2018
Skip Navigation Links
نظام إدارة المبيعات
|
تعليم & شروحاتExpand تعليم & شروحات
 
شرح ملف htaccess | ما هو ملف htaccess
بواسطة احمد عادل موسى
2015-07-26

السلام عليكم ورحمة الله وبركاته :

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


ماهي هذه الملفات ؟
ان لفظ ملف مبالغ به في وصفها لانها لا تحتوي على امتداد حتى نصفها به بل هي بكل بساطة htaccess , و تكون هذه الملفات مخفية و لا يمكن عرض محتواها مباشرة في الموقع , ولكن تستطيع مشاهدها من خلال لوحة التحكم الخاصة بالموقع عن طريق مدير الملفات او من خلال برامج FTP .

انشاء htaccess ! 

لكي تنشيء htaccess افتح أي محرر نصوص وليكن المفكرة و انشاء ملف باسم htaccess.txt الان قم بحذف txt. في نهاية اسم الملف وبهذا تم عمل htaccess تحتاج اضافة نقطة في البداية htaccess. ولكن قد يصعب عليك ذلك في جهازك ولكن ارفع الملف الى موقعك وغير اسمة بستخدام FTP او بستخدام لوحة التحكم الخاصة بذلك .

فوائد htaccess وكيف استخدمها ؟

ملفات htaccess يجب أن ترسل الى موقعك ( ترفع ) كنمط آسكي ASCII ، ليس ثنائي BINARY , ايضا قد تحتاج الى ترخيص ( تصريح ) 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 Content Length Required 
412 Precondition Failed 
413 Request Entity Too Long 
414 Request URI Too Long 
415 Unsupported Media Type

انواع اخطاء السيرفر الخادم .

كود HTML:
500 Internal Server Error 
501 Not Implemented 
502 Bad Gateway    
503 Service Unavailable    
504 Gateway Timeout    
505 HTTP Version Not Supported

واهم هذه الاخطاء التي أخطاء تعرض للزوار وسوف اشرح بعضها :
 

كود HTML:
400 - Bad Request .. وتعني طلب خاطئ للصفحة 
401 - Authorization Required ... وتعني انه غير مرخص للزائر بعرض الصفحة 
403 - Forbidden .. وتعني انه ممنوع للزائر من دخول الصفحة 
404 - File not found ... وتعني أن الصفحة التي قام الزائر بطلبها غير موجودة
500 - Internal Server Error وتعني أن هناك خطأ في خادم الموقع 
503 - Service Unavailable ... وتعني أن الخدمة غير متوفرة


الان استخدام htaccess في عمل صفحات الخطأ .

اعمل ملف باسم htaccess. وضع بداخلة التالي :
 

كود PHP:
ErrorDocument [عنوان الخطأ ] [رقم الخطاء]  

ErrorDocument .. وهي الدالة الخاصة بصفحة بتعيين صفحة الخطأ

مثال 

كود PHP:
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 وضع في داخلة التالي :

كود 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>  


مثال اخر 
 

كود PHP:
AuthType Basic 

AuthName 
"stop" 

AuthUserFile "/home/اسم المستخدم لموقعك /.htpasswds/ " 


require valid-user  

ويفضل ان يكون ملف الارقام السرية في مجلد مجاور مجلد www

و يحتوي ملف .htpasswds على الارقام السرية ويكون بهذا الشكل :

Username1:Password1 


Username1 مثلا badr و Password1 مشفر md5 ويكون بهذا الشكل
 

كود PHP:
badr:e1a378b86bc5c0203239b935e2964ba3  

حماية ملف او صور 
 

كود PHP:
<files "file.exe|file.php|file.zip"
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. وذلك بواسطة الكود التالي : 

كود PHP:
AddType text/html [Extension 1] [Extension 2
AddHandler server-parsed [Extension 1] [Extension 2]  

حيث أن [Extension 1] و [Extension 2] هي امتداد الملفات التي تريد للسرفر أن يتعرف عليها ليعطيها الصلاحية بتنفيذ أوامر الـ SSI بشكل اتوماتيكي ..

مثال ذلك : 
 

كود PHP:
AddType text/html .dhtml .html 
AddHandler server
-parsed .dhtml .html  

حيث الملفات التي تعطي أوامر للسرفر باستقبال أوامر الـ SSI هي الملفات التي تنتهي بالامتداد .. dhtml و html


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 212.212.212.1 
deny from 212.212.212.2 
allow from 212.212.212.1 
allow from 212.212.212.2  

وفي حال تركت الخانة الأخيرة من رقم الـ IP فارغة فأنت هنا تكون قد منعت نطاق كاملا ( دولة في الغالب ) من تصفح موقعك .. مثال : 
 

كود PHP:
deny from 000.000.000.  

وكذلك تفعل في حال أردت السماح فقط لنطاق معين في تصفح الموقع .. 

كود PHP:
allow from 000.000.000.  

وأما إذا أردت منع الجميع من تصفح الموقع .. فاستخدم الكود التالي : 

كود PHP:
deny from all  



5- مَنْع الروبوتاتِ السيئةِ والموقعِ rippers (المعروف باسم المتصفّحات الغير متَّصلة)

ومثال لذلك مع ان معرفتي قليلة بذلك ومنها 
 

كود HTML:
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. وضع في داخلة التالي :
 

كود PHP:
RewriteEngine on 
RewriteBase 
/jadweb 
RewriteRule 
jadweb/home.arhome.php  

تستطيع تكرار ذلك مع تغيير اسم الصفحات التي ترغب بتعديلها .

 
 
إعلان ... لأصحاب المتجار فقط - برنامج تنفيذي وليس سورس كود
تحميل برنامج مبيعات وجرد المستودعات

 
 
الصفحة الرئيسية
اتصل بنا
نبذة عن هذا الموقع
خارطة الموقع
مشاريع برمجة متنوعة مفتوحة المصدر
مواضيع ودروس تعليمية
 
 
نظام YAZSYS لإدارة المبيعات