htaccess
htaccess هو ملف مخزّن في دليل ، عادةً على نظام تشغيل متغير Unix و Linux ، يمنح أو يرفض حقوق وصول المستخدمين أو المجموعات إلى هذا الدليل. على يونكس مثل نظام التشغيل مثل لينكس ، يجب أن يكون لهذا الملف الأذونات المعينة على 640 باستخدام chmod . يجب أن يكون موجودًا أيضًا في جذر دليل public_html. قد تبدو محتوياته مشابهة للأمثلة المذكورة أدناه.
مثال وشرح .htaccess كامل
يوجد أدناه تفصيل كامل لكل جزء من الأجزاء الرئيسية لملف htaccess. يمكن دمج كل من هذه الأجزاء في ملف htaccess الخاص بك بناءً على ما يحتاجه حسابك.
ملحوظةتأكد من اختبار صفحة الويب الخاصة بك بعد تنفيذ أي من التغييرات أدناه. يمكن أن تقيد هذه التغييرات زوار موقعك أو تعيد توجيههم بطريقة ربما لم تكن تتوقعها.
نصيحةالأسطر التي تبدأ بـ # هي التعليقات أو عبارات غير قابلة للتنفيذ . أيضًا ، يتم استخدام العديد من الأمثلة أدناه التعبيرات العادية للمساعدة في مطابقة الأحرف أو الملفات في سلسلة URL.
- تعيين الإعداد الافتراضي للحرف.
- تم العثور على تطابقات إعادة التوجيه في URL.
- أعد توجيه المستخدم بخطأ 410.
- صفحات وثيقة خطأ مخصصة.
- قم بإنشاء إعادة توجيه 301.
- تأمين ملف htaccess.
- تعطيل فهرسة الدليل.
- اجعل ملفات HTML تعمل كملفات SSI.
- تفعيل التخزين المؤقت لموقع الويب.
- رفض الزائرين بناءً على USER_AGENT.
- رفض الزوار بناءً على عنوان IP.
- إنشاء دليل محمي بكلمة مرور.
تعيين الإعداد الافتراضي للحرف
#Set the charset for the pages AddDefaultCharset UTF-8
في المثال الأول ، تم تعيين إعدادات الأحرف لكل صفحة على UTF-8. على الرغم من أن هذا يمكن تحديده في ملف علامة متغيرة ، إذا كنت تريد تطبيق الإعداد على كل مستند ، فاضبطه في htaccess.
تم العثور على تطابقات إعادة التوجيه في URL
#Redirect M$soft and Hacking attempts RedirectMatch (.*MSOffice)$ /error.htm RedirectMatch (.*httpodbc.dll)$ /error.htm RedirectMatch (.*root.exe)$ /error.htm RedirectMatch (.*nt)$ /error.htm RedirectMatch (.*comments.php)$ /error.htm
في المثال أعلاه ، فإن ملف RedirectMatch يعيد توجيه أي من السلاسل المتطابقة أعلاه إلى صفحة error.htm. يمكن أيضًا إعادة توجيه هذه الأسطر إلى برنامج نصي لتسجيل التطابقات أو توجيه المستخدمين وفقًا لذلك. في السطر الأول ، نقوم بمطابقة أي MSOffice في نهاية عنوان URL وإعادة التوجيه إلى صفحة error.htm.
أعد توجيه المستخدم بخطأ 410
#HTTP 410 don't log files don't have Redirect gone /crossdomain.xml Redirect gone /labels.rdf
يعيد المثال التالي توجيه المستخدم إلى رسالة خطأ 410 ، مما يعني أن الصفحة التي يبحثون عنها قد اختفت ولن تعود أبدًا وليس لها عنوان إعادة توجيه. تعد إعادة التوجيه 410 طريقة رائعة لإعادة توجيه الطلبات إلى الصفحات غير الموجودة على الخادم الخاص بك ولكنها مطلوبة بشكل متكرر وتتسبب في حدوث أخطاء 404 في سجل الأخطاء.
صفحات وثيقة خطأ مخصصة
#Error pages ErrorDocument 400 /error.php?400 ErrorDocument 401 /error.php?401 ErrorDocument 403 /error.php?403 ErrorDocument 404 /error.php?404 ErrorDocument 405 /error.php?405 ErrorDocument 410 /error.php?410 ErrorDocument 500 /error.php?500 ErrorDocument 501 /error.php?501
في المثال أعلاه ، يتم توجيه أي أخطاء HTTP إلى برنامج نصي PHP يعرض الخطأ للمستخدم. يقوم البرنامج النصي PHP أيضًا بتسجيل الخطأ لمسؤول الموقع. انظر لدينا HTTP تعريف لقائمة كاملة بأخطاء HTTP ، إذا كنت بحاجة إلى أكثر مما هو مذكور أعلاه. قد لا يحتاج موقع الويب الخاص بك أكثر من العرف 404 استجابة.
قم بإنشاء إعادة توجيه 301
#HTTP 301 redirect computerhope.com to www.computerhope.com RewriteEngine On rewritecond %{http_host} ^computerhope.com [NC] rewriterule ^(.*)$ https://www.computerhope.com/$1 [L,R=301,NC]
في المثال أعلاه ، أنشأنا 301 التي تعيد التوجيه https://computerhope.com ل https://www.computerhope.com . تستخدم عملية إعادة التوجيه 'L، R = 301، NC' كعلامة. الحرف 'L' اختصار لكلمة 'last'. يخبر Apache بعدم تشغيل المزيد من القواعد لإعادة الكتابة. 'R = 301' لإعادة التوجيه 301 ، و 'NC' اختصار لـ 'no case' وتجعل هذه القاعدة غير حساسة لحالة الأحرف. يساعد إنشاء هذا النوع من إعادة التوجيه في منع إدراج صفحات الويب الخاصة بك عدة مرات في محركات البحث والحفاظ على اتساق كل شيء. لقد أضفنا أيضًا خيار متابعة الارتباطات الرمزية ( روابط رمزية ) ، مما يساعد على منع حدوث الأخطاء إذا كان الملف أو الدليل مرتبطًا وليس ملفًا أو دليلًا فعليًا.
RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule ^(.*) http://%1/$1 [R=301,L]
المثال أعلاه هو مثال آخر على كيفية إنشاء 301 مباشرة. في هذا المثال ، نقوم بتوجيه أي عنوان www إلى عنوان بخلاف www. لذلك ، إذا تم تنفيذها https://www.computerhope.com قد يصبح https://computerhope.com . في هذا المثال ، أضفنا أيضًا الامتداد الطابع البري . * كمجال بدلاً من تحديده computerhope.com .
تأمين ملف htaccess
# Secure htaccess file order allow,deny deny from all
في هذا المثال التالي ، يتم إنشاء قاعدة تمنع أي شخص من عرض ملف htaccess الخاص بك ، والقواعد التي قمت بإدراجها هناك. يمكن أن تضيف هذه الأسطر الإضافية حماية إضافية لملف htaccess.
تعطيل فهرسة الدليل
# disable directory browsing Options All -Indexes
في المثال أعلاه ، تمنع قاعدة الأمان هذه أي شخص من تصفح الأدلة على الخادم الخاص بك. على سبيل المثال ، إذا كان لديك دليل يسمى / files لا يحتوي على ملف index.html ملف ، يتم عرض ملفات هذا الدليل لأي شخص. إذا كان هذا الدليل يحتوي على ملفات حساسة (مثل كلمات المرور) ، فيمكن للشخص الذي يتصفح هذا المجلد عرض أو حفظ أي ملفات في هذا الدليل ، وهو ما يمثل مخاطرة أمنية.
اجعل ملفات HTML تعمل كملفات SSI
#Allow files with chmod +x to be SSI files xBitHack on
من خلال تشغيل xBitHack ، يمكنك السماح لأي ملف لغة البرمجة ملف بأذونات قابلة للتنفيذ ، على سبيل المثال ، chmod + x ليتم معاملته كملف SSI. هذه الإضافة مفيدة لأي شخص يقوم بتشغيل صفحة ويب كملفات HTML ثابتة ويحتاج إلى واحد أو أكثر من صفحات ويب HTML الخاصة بهم للحصول على SSI.
تفعيل التخزين المؤقت لموقع الويب
# Month cache Header set Cache-Control 'max-age=2592000' # Week cache Header set Cache-Control 'max-age=604800' # Day cache Header set Cache-Control 'max-age=86400'
في المثال أعلاه ، التخزين المؤقت تم إعداده للمساعدة في تحسين سرعة تحميل صفحاتك وتقليل الطلب على الخادم الخاص بك. في المثال الأول أعلاه ، تم تعيين ملفات الصور والملفات الأخرى على الحد الأقصى لعمر الشهر. إذا طلب الزائر ملفًا شاهده بالفعل مرة واحدة ، فسيتم تحميل جميع الطلبات المستقبلية من جهاز الكمبيوتر الخاص به وليس الخادم لمدة شهر. بعد ذلك ، ملفات مثل جافا سكريبت الملفات و CSS يتم تعيين الملفات على الحد الأقصى للعمر لمدة أسبوع. وأخيرا، فإن لغة البرمجة يتم تعيين الملفات إلى حد اليوم. يمكن تعديلها جميعًا بناءً على عدد مرات تحديث هذه الأنواع من الملفات.
نصيحةيتم تمثيل العمر بالثواني. هناك 86400 ثانية في يوم واحد.
رفض الزائرين بناءً على USER_AGENT
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR] RewriteCond %{HTTP_USER_AGENT} ^Download Demon [OR] RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR] RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR] RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR] RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR] RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR] RewriteCond %{HTTP_USER_AGENT} HTTrack [OR] RewriteCond %{HTTP_USER_AGENT} ^Zeus RewriteRule ^.* - [F,L]
هناك العديد من الأدوات والخدمات التي تقوم بفهرسة موقعك للبحث عن عناوين البريد الإلكتروني أو نسخ صفحتك كاملة. إذا تم استخدامها بشكل غير صحيح ، فإن هذه الخدمات تستنزف خادمك ويمكن أيضًا استخدامها بشكل ضار. إذا لاحظت هذه وكلاء المستخدم في سجلات الزوار الخاصة بك والتي يمكن منعها باستخدام أمر مشابه لما ورد أعلاه.
رفض الزوار بناءً على عنوان IP
Order Allow,Deny Deny from 178.239.58.144 Allow from all
في المثال أعلاه ، ترفض هذه السطور وجود ملف عنوان IP من الوصول إلى صفحاتك. يساعد حظر عنوان IP باستخدام هذه الطريقة في منع أي شخص من عنوان IP هذا من فعل أي شيء لموقعك على الويب.
إنشاء دليل محمي بكلمة مرور
AuthUserFile /home/directory/.passfile AuthGroupFile /dev/null AuthName Access For Valid Users AuthType Basic require valid-user
يحتوي ملف AuthUserFile على المستخدمين وكلمات المرور التي تريد منحها حق الوصول إلى الدليل حيث يتم تخزين الملفات.
لإنشاء ملف مرور ، أدخل الأمر التالي في الموجه.
htpasswd -c . passfile username
بعد إدخال الأمر أعلاه ، تظهر مطالبة بإدخال كلمة المرور لاسم المستخدم.
The passfile should also be set to 640 permissions.ملحوظة
قد لا تنطبق الأمثلة والمعلومات الواردة أعلاه على جميع الأنظمة أو الإعدادات. لذلك ، إذا كنت غير متأكد من أن ملف مزود خدمة الإنترنت (مزود خدمة الإنترنت) أو مضيف الويب يدعم إنشاء الحقوق باستخدام htaccess ، اتصل بهم إذا لم تتمكن من حماية موقع الويب بكلمة مرور.