+ الرد على الموضوع
صفحة 1 من 2 1 2 الأخيرةالأخيرة
النتائج 1 إلى 5 من 9
  1. #1
    استاذ مشهور جدا is on a distinguished road
    تاريخ التسجيل
    06 / 05 / 2006
    الدولة
    بلد الإسلام
    المشاركات
    47
    معدل تقييم المستوى
    267

    Icon1 أخي استاذ مشهور جدا هل تعرف ما هو ملف htaccess. ؟

    بسم الله الرحمن الرحيم

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

    اخواني الاحباب

    الكثير منا لا يعرف ما هو ملف 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. الذي وضعنا فيه أسماء المستخدمين المصرح لهم بالدخول وكلمات المرور الخاصة بهم .. تماما كما فعلنا في حماية المجلد ..

    يمكنك أيضا هنا وضع العدد الذي ترغب به من الملفات لكي تحميها .. أو تجعلها فقط لمجموعة محددة...


    يتبع ان شاء الله تعالي



     
  2. #2
    استاذ مشهور جدا is on a distinguished road
    تاريخ التسجيل
    06 / 05 / 2006
    الدولة
    بلد الإسلام
    المشاركات
    47
    معدل تقييم المستوى
    267

    Icon1 مشاركة: أخي استاذ مشهور جدا هل تعرف ما هو ملف htaccess. ؟

    تابع الشرح


    عادة عندما نرفع ملف باسم index.html أو index.php إلى الموقع .. يكون هذا الملف هو الصفحة الرئيسية للموقع ..

    الآن هل سألت نفسك لماذا هذه الصفحة ؟؟

    للإجابة على سؤالك .. افتح ملف htaccess. الموجود في الموقع .. ستلاحظ فيه كود كالتالي :

    كود PHP:
    DirectoryIndex index.htm index.html index.php 
    الدالة DirectoryIndex مهمتها التعريف أن أسماء الصفحات التي تلي الدالة هي صفحات البداية للموقع ..

    كيف يقرأ ملف htaccess. هذه الدالة :

    يبدأ باسم أول صفحة وهي index.htm فإن وجدها على الموقع فسيعتبرها هي ملف الصفحة الرئيسية ..والا سينتقل للاسم الثاني index.html .. وهكذا ..
    الآن لنفرض أن صفحة البداية لموقعك اسمها مختلف .. مثلا .. user.htm فهنا ستضع هذا الاسم بعد الدالة DirectoryIndex مباشرا ... وهنا ستكون هذه الصفحة هي صفحة البداية فعلا ..

    وتكون الدالة كما في المثال :

    كود PHP:
    DirectoryIndex [file
    ومكان file يكون اسم الصفحة المطلوبة ...

    -----------------------------------------

    تعريف السيرفر المستضيف للموقع بأوامر 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

    -------------------------------------------------

    حماية الباندويث في الموقع من الاستهلاك الخارجي

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

    اذاُ كيف أجعل عرض الصور التي في موقعي لا تتم إلا من خلال الموقع نفسه ..؟ وكذلك تحميل الملفات ..؟

    الحل أيضا هنا يكون باستخدام أوامر ملف htaccess.
    لحجب الصور عن الظهور في موقع غير موقعك استخدم الكود التالي :

    كود PHP:
    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 ..

    وبذلك لن يتمكن أحد من وضع وصلة في موقعه لبرنامج عندك في الموقع .. وإذا فعل ذلك فلن يعمل معه الرابط .. وعلى الزائر التوجه إلى موقعك والتحميل منه مباشرة ...

    -------------------------------------

    توجيه الصفحات القديمة في الموقع ...

    لنفرض انه يوجد على الموقع منتدى .. وأعضاؤك يعرفون الرابط المباشر له .. ثم قمت بتغير اسم مجلد المنتدى .. فكيف ستوجه الزوار إلى الرابط الجديد ؟؟

    هناك الكثير من الحلول .. منها إضافة تاج في هيدر الصفحة .. ولكن الأفضل أن يتم ذلك عن طريق ملف htaccess. تضعه في نفس المجلد القديم .. ثم تضع فيه الكود التالي :

    كود PHP:
    Redirect /olddirectory/oldfile.html http://yoursite.com/newdirectory/newfile.html 
    كل ما عليك هو تغير الوصلات في الكود بما يتوافق مع موقعك ...

    /olddirectory/oldfile.html تشير إلى الصفحة القديمة
    و newdirectory/newfile.html هي العنوان الجديد الذي سيستخدمه زوار الموقع ..



    يتبع ان شاء الله



     
  3. #3
    استاذ مشهور جدا is on a distinguished road
    تاريخ التسجيل
    06 / 05 / 2006
    الدولة
    بلد الإسلام
    المشاركات
    47
    معدل تقييم المستوى
    267

    Icon1 مشاركة: أخي استاذ مشهور جدا هل تعرف ما هو ملف htaccess. ؟

    تابع للشرح

    إخفاء محتويات المجلد عن الأعضاء أو نوع معين من الملفات فقط في المجلد ..

    إذا كان لديك في الموقع مجلد وتريد إخفاء محتوياته عن الزوار فما هي الحلول المقترحة لذلك ؟؟

    لتوضيح الأمر أكثر ..

    لنفرض أن لديك مجلد في الموقع تضع فيه ملفات للتحميل بشكل مؤقت أو صور أو ما شابه ذلك .. ولكنك تريد منع الزوار من رؤية محتويات هذا المجلد ..

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

    فأنت هنا تستطيع منع الزوار من مشاهدة كل محتويات المجلد .. وذلك بوضع الكود التالي في الملف :

    كود PHP:
    IndexIgnore 
    لاحظ أن ( * ) تعني جميع الملفات الضمنة داخل المجلد ..

    وقد تمنعهم فقط من عرض ملفات الصور وهنا تضع الكود التالي :

    كود PHP:
    IndexIgnore *.gif *.jpg 
    ويمكنك ايضا إضافة كل ما تريد من لواحق ملفات الصور والملفات الأخرى كـ zip . rar ..

    ------------------------------------------

    حجب الموقع عن الزوار من دولة معينة أو جعله لزوار دولة معينة أو حجبه عن 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 223.65.22.1
    deny from 223.65.22.2
    allow from 217.40.22.1
    allow from 217.40.22.2 
    وفي حال تركت الخانة الأخيرة من رقم الـ IP فارغة فأنت هنا تكون قد منعت نطاق كاملا ( دولة في الغالب ) من تصفح موقعك .. مثال :

    كود PHP:
    deny from 000.000.000
    وكذلك تفعل في حالة ارغبة في السماح فقط لنطاق معين لتصفح الموقع ..

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

    كود PHP:
    deny from all 
    -----------------------------------------

    تعريف الخادم بلاحقات الملفات باستخدام Mime Types

    في بعض الأحيان قد لا تعمل ملفات MP3 أو الفلاش أو PHP على الخادم ..

    والسبب في ذلك أن تعريف هذه الملفات غير موجود على الخادم ..

    فإذا كان الخادم لديك يدعم ملفات MP3 أو PHP ولكن لم تعمل عندك ..

    فهنا أنت بحاجة إلى تعريف الخادم بها بواسطة Mime Types ...

    فعند إضافتها يخبر الخادم المتصفح أن هذا الملف هو ملف MP3 أو ملف فلاش ..

    وبالتالي يكمل المتصفح المهمة ويقوم بقراءته بالشكل المناسب للملف ..

    بالنسبة لـ MIME فهي اختصار لـ Multipurpose Internet Mail Extensions

    وهو أحد البروتوكولات المتخصصة بنقل البيانات غير النصية ( كالصور وملفات الفيديو و ملفات الفلاش ) عبر الانترنت سواء كان بالمتصفح أو البريد الالكتروني ( وغالبا يكون للبريد الالكتروني ) ...

    ولتعريف ملف فلاش مثلا .. فقط اكتب الكود التالي في ملف htaccess.

    كود PHP:
    AddType application/x-shockwave-flash swf 
    بافتراض أن shockwave هو اسم الملف ..

    ولتعريف ملف midi استخدم الكود التالي :

    كود PHP:
    AddType audio/x-midi mid 
    ولتعريف ملفات ريل بلير استخدم الكود التالي :

    كود PHP:
    AddType audio/x-pn-realaudio .real 
    وبنفس المبدأ والطريقة تعمل مع بقية الملفات التي لم تعمل إلا بتعريفها ..

    ولكن عادة تكون هذه الأشياء معرفة بشكل افتراضي ولا حاجة إلى تعريفها إلا إذا دعت الحاجة إلى ذلك ..

    أخيرا ..

    هذه كانت أغلب استخدامات ملف htaccess. وقد يكون له استخدامات أخرى غير شائعة كثيرا ..

    و يمكن للجميع الاطلاع علي هذه المراجع في حالة الرغبة في معرفة المزيد :

    http://www.javascriptkit.com/howto/htaccess.shtml

    http://httpd.apache.org/docs/2.0/howto/htaccess.html

    http://www.thejackol.com/htaccess-cheatsheet/

    http://www.apacheweek.com/features/userauth

    http://hoohoo.ncsa.uiuc.edu/docs/tutorials/user.html

    اعتذر ان كنت قد وضعت الموضوع في القسم الغير مناسب

    شكرا مع خالص تحياتي للجميع



     
  4. #4
    المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute الصورة الرمزية المودة
    تاريخ التسجيل
    17 / 08 / 2004
    العمر
    32
    المشاركات
    20,806
    معدل تقييم المستوى
    26158

    افتراضي مشاركة: أخي استاذ مشهور جدا هل تعرف ما هو ملف htaccess. ؟

    بارك الله فيك ... مشكوووووور على هذا الموضوع الهام والمميز ... تحياتي .

     
  5. #5
    استاذ مشهور جدا is on a distinguished road
    تاريخ التسجيل
    06 / 05 / 2006
    الدولة
    بلد الإسلام
    المشاركات
    47
    معدل تقييم المستوى
    267

    افتراضي مشاركة: أخي استاذ مشهور جدا هل تعرف ما هو ملف htaccess. ؟

    التميز هو مرورك العطر علي الموضوع

    بارك الله فيك لمرورك الطيب العطر و شاكر لك تثبيتك للموضوع و جزاكم الله عنا خيرا



     

 
+ الرد على الموضوع
صفحة 1 من 2 1 2 الأخيرةالأخيرة

معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

     

مواقع النشر (المفضلة)

مواقع النشر (المفضلة)

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك