دليل المبتدئين ل. htaccess للمصممين والمطورين
من بين العديد من الأدوات المختلفة لتخصيص خادم الويب الخاص بك ، يعد ملف config. htaccess أحد الأصول الهائلة. يمكنك إعادة تعيين أنواع المستندات بسرعة ومحركات التحليل وإعادة توجيه عناوين URL, والعديد من الميزات الحاسمة الأخرى. قد لا يدخل مشرفو المواقع غير التقنيين في تفاصيل إدارة ملف htaccess الخاص بك. لكن الموضوع نفسه رائع ويستحق بعض التحقيق.
بالنسبة لهذه المقالة ، أريد تقديم بعض المفاهيم الأكثر غرضًا لمشرفي المواقع ومطوري الويب. أي شخص هو إطلاق موقع الويب الخاص بهم على خادم Apache بالتأكيد تريد أن تفهم كيفية إدارة ملف htaccess. هذا يوفر الكثير من التخصيص و يمكن أن تعمل عبر أي لغات الويب من PHP إلى روبي.
في الجزء السفلي من هذا المنصب ، أضفت بعض تطبيقات الويب الخارجية إلى مساعدة القادمين الجدد على إنشاء ملفات htaccess الخاصة بهم بشكل حيوي.
لماذا استخدام ملف htaccess?
هذا سؤال رائع وربما يجب أن نبدأ بالإجابة “ما هو ملف htaccess”? إنه ملف تهيئة خاص جدًا يستخدمه خادم الويب Apache. يمكن أن يخبر ملف htaccess خادم الويب كيفية تقديم أشكال مختلفة من المعلومات وكيفية التعامل مع رؤوس طلبات HTTP المختلفة.
حقا هو وسيلة ل لامركزية لتنظيم إعدادات خادم الويب. قد يحتوي خادم فعلي واحد على 50 موقعًا مختلفًا لكل منها ملف htaccess الخاص به. يمنح الكثير من الصلاحيات لمشرفي المواقع ، الأمر الذي سيكون مستحيلاً. ولكن لماذا يجب عليك استخدام واحدة?
السبب الأكبر هو الأمن. يمكنك قفل بعض الدلائل أو جعلها محمية بكلمة مرور. يعد هذا الأمر رائعًا للمشاريع الخاصة أو أنظمة إدارة المحتوى الجديدة حيث تريد مزيدًا من الأمان الإضافي. ولكن هناك أيضًا مهام شائعة مثل إعادة توجيه رسائل الخطأ 404 إلى صفحة ويب معينة. هذا فقط يأخذ سطر واحد من التعليمات البرمجية ويمكن أن تؤثر بشكل كبير على كيفية تفاعل الزوار مع الصفحات المفقودة.
بصدق ، ليس هناك الكثير مما يمكنني قوله لإقناع الآخرين بأن ملف htaccess يستحق الفهم. بمجرد رؤيتها في العمل ، يمكنك التعرف على كل القيمة التي تأتي من ملف التكوين الصغير هذا. كما آمل أن تقدم بقية هذه المقالة بعض الموضوعات الثاقبة لجلب مشرفي المواقع إلى ضوء إدارة تكوين htaccess..
السماح / رفض الوصول
من الممكن التعرف على الزوار المحتملين المزعجين ومنعهم من الوصول إلى موقع الويب الخاص بك. قد يكون هذا الأمر متطرفًا بعض الشيء ، ولكن إذا كنت تعلم أن شخصًا أو مجموعة من الأشخاص قد استهدفوا موقع الويب الخاص بك ، فهناك بعض الخيارات للاختيار من بينها. يمكنك اختيار إحالة المجال لرفض أو حظر الزوار عن طريق عنوان IP.
طلب السماح ، رفض الرفض من 255.0.0.0 الرفض من 123.45.6. السماح من الجميع
تم نسخ هذه الرموز عينة من دليل Htaccess لأنها القالب المثالي للبدء. لاحظ عنوان IP الثاني مفقود عدد صحيح 4. ستستهدف كتلة الكود هذه أول IP (255.0.0.0) وكل IP ضمن النطاق 123.45.6.0-255, ثم السماح لجميع حركة المرور الأخرى. لا يجوز لمشرفي المواقع استخدام هذا كثيرًا مثل التقنيات الأخرى ولكن من المفيد فهمه.
منع سرد الدليل
سيكون هناك أوقات عندما يكون لديك دليل مفتوح وهو إعداد للسماح بالتصفح بشكل افتراضي. هذا يعني أنه يمكن للمستخدمين عرض جميع الملفات المدرجة داخل هيكل الدليل الداخلي ، مثل مجلد الصور الخاص بك. لا يريد بعض مشرفي المواقع السماح بإدراج الدليل ، ومن حسن الحظ أن مقتطف الشفرة سهل التذكر.
خيارات ، مؤشرات
لقد رأيت هذه الإجابة تقدم مرات لا تحصى خلال Stack Overflow وقد تكون واحدة من أسهل قواعد htaccess..
فمن الممكن أن في الواقع إنشاء ملفات .htaccess متعددة داخل كل من هذه الدلائل لذلك ربما واحد منهم محمي بكلمة مرور ولكن الآخرين ليسوا كذلك. ولا يزال بإمكانك الحفاظ على خيارات ، مؤشرات بحيث لا يمكن للزوار تصفح موقع الويب الخاص بك / الصور / المجلد.
حماية كلمة المرور
كلمة السر لحماية الدلائل الخاصة بك هو إجراء شائع للغاية ل تأمين مناطق الإدارة والمجلدات الأخرى المهمة لموقع الويب الخاص بك. في بعض الأحيان ، سوف ترغب فقط في إتاحة الوصول إلى مجموعة صغيرة من الأشخاص. في أوقات أخرى ، تمنع كلمات المرور المتسللين من الوصول إلى لوحة إدارة موقع الويب الخاص بك. لكن في كلتا الحالتين يعد حلًا قويًا لعدد كبير من المشكلات.
يوجد دليل مفيد حول حماية كلمة المرور والذي يحدد مقتطفات الشفرة المهمة. سوف تحتاج إلى إنشاء ملف كلمة مرور يخزّن بيانات اعتماد اسم المستخدم / كلمة المرور. هذه هي الطريقة التي يمكن لـ Apache من خلالها فحص ما يقوم المستخدم بإدخاله لمعرفة ما إذا كان ينبغي منحهم حق الوصول. ولاحظ كيف ستحتاج إلى إنشاء نموذج لاسم المستخدم وكلمة المرور الخاصين بك.
أوصي باستخدام مولد htpassword هذا حتى تتمكن من توفير بعض الوقت. سيظل بناء الجملة مثاليًا دائمًا ولن تحتاج إلى تشفير كلمة المرور بنفسك. والخيار الآخر الرائع هو حماية كلمة مرور قائمة الدليل بالكامل. يمكننا أن نرى هذا المثال في معرض قصاصات كود CSS-Tricks.
AuthType Basic AuthName "هذه المنطقة محمية بكلمة مرور" AuthUserFile /full/path/to/.htpasswd طلب صالح للمستخدم
الأمن لورد
لوضع فكرة حماية كلمة المرور هذه في الاستخدام الجيد ، دعنا نعرض مثالًا حقيقيًا. سوف هذا مقتطف رمز أكثر تعقيدا فرض مصادقة المستخدم لأي شخص يصل إلى ملف WordPress wp-login.php. ستجد المصدر الأصلي على Ask Apache والذي يحتوي على العديد من مقتطفات حماية WordPress الأخرى.
رفض الطلب ، السماح بالرفض من الكل إرضاء أي AuthName "محمي بواسطة AskApache" AuthUserFile /web/askapache.com/.htpasswda1 AuthType Basic يتطلب صالح-user
وإذا كنت ستتبع قواعد .htaccess هذه ، فقد يساعد ذلك أيضًا في حماية كلمة مرور منطقة المشرف. عادة ال الفسفور الابيض بين login.php سيحصل الملف على أكبر عدد من الزيارات من الأشخاص الذين يحاولون استخدام القوة الغاشمة في نظامك. لذلك حتى مجرد رموز عينة أعلاه سيكون أكثر من ما يكفي من الأمن المضافة لموقع الويب الخاص بك وورد.
HTTP إعادة كتابة القواعد
تعد إعادة كتابة عناوين URL من أكثر الاستخدامات شيوعًا لملفات .htaccess. وورد التثبيتات الافتراضية يمكن في الواقع إنشاء ملف. htaccess مباشرة من لوحة الإدارة. يتيح لك هذا إنشاء عناوين URL جميلة لا تحتوي على بنية .php؟ p = 1.
أريد أن ننظر إلى هذا المثال على إعادة كتابة كيفية تحديث الشرطات السفلية منذ ذلك الحين يحتوي على الكثير من أهم العناصر.
خيارات + FollowSymLinks RewriteEngine On RewriteBase / RewriteRule! \. (html | php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ (_ [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor: Yes] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) ] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4 [E = uscor: Yes] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- $ 3 [E = uscor: Yes] RewriteRule ^ ([^ _] *) _ (. *) $ 1- 1- $ 2 [E = uscor: Yes] RewriteCond٪ ENV: uscor ^ Yes $ RewriteRule (. *) http: //d.com/$1 [R = 301، L]
RewriteEngine و RewriteBase يمكن دائما تعيينها لهذه القيم بالضبط. لكنك في حاجة إلى تشغيل RewriteEngine حتى يعمل أي شيء آخر. هناك الكثير من الأدلة عبر الإنترنت تشرح كيفية تمكين mod_rewrite ويمكن لمزود الاستضافة الخاص بك المساعدة أيضًا.
لاحظ بناء الجملة يتبع نمط RewriteRules في القمة. هذه القواعد تستخدم ل تطابق ضد الحالات التي يتم إرسالها كطلب HTTP. يتم الرد عليها بواسطة RewriteRule والتي في هذه الحالة تعيد توجيه كل شيء إلى المجال d.com. تسمى أقواس النهاية مثل [R = 301، L] إشارات إعادة الكتابة المهمة ، ولكن أكثر من موضوع متقدم.
بناء الجملة mod_rewrite هو بالتأكيد مربكة بعض الشيء ولكن لا تخيف! يمكن أن تبدو المقتطفات أسهل بكثير في أمثلة أخرى.
عندما بدأت للتو ، يجب أن أوصي بـ webapp mod_rewrite الذي يساعدك على إنشاء نماذج التعليمات البرمجية باستخدام عناوين URL الحقيقية. هذه أداة رائعة لأنه يمكنك البحث عن عناصر مختلفة في بناء الجملة لمعرفة ما الذي يقومون به بالفعل في قواعد إعادة الكتابة. فيما يلي درس تعليمي رائع يحتوي على مثال أبسط للدراسة:
أعد كتابة ^ dir / ([0-9] +) /؟ $ /index.php؟id=$1 [L]
لا تحاول أن تفرط في كل هذه الأمور دفعة واحدة. استغرق الأمر مني أكثر من 3 إلى 4 أشهر للبدء في فهم كيفية إعادة كتابة عناوين URL باستخدام [0-9a-zA-Z] + وأنماط مماثلة. استمر في التدريب وفي الوقت المناسب أعدك بأنك ستحصل على هذه الأشياء كما لو كانت معرفة جيدة.
مقتطفات الكود لمشرفي المواقع
أحب قصاصات سهلة الاستخدام وأريد تجميع هذه المجموعة الصغيرة من أكواد htaccess ذات الصلة لمشرفي المواقع. كل فكرة من هذه الأفكار يمكن أن تتناسب بشكل جيد مع ملف htaccess الخاص بك إلى جانب كتل التعليمات البرمجية الأخرى. معظم هذه المقتطفات كبيرة ل حل المشكلات السريعة أو الإصلاحات في بيئة خادم الويب. تخيل إعداد Apache المثالي لمشرفي المواقع الجدد للتو على الإنترنت.
إعداد DirectoryIndex
يتم استخدام الأمر DirectoryIndex بشكل شائع في سطر واحد. يمكنك إخبار Apache بالوثائق التي يجب أن تعامل في البداية على أنها “الأساسية” وثيقة. افتراضيا هذه الإرادة العناصر المستهدفة مثل index.html و index.php و index.asp وملفات الفهرس الأخرى. ولكن باستخدام مقتطف الشفرة هذا الذي قمت بنسخه أدناه ، لديك القدرة على جعل هذا المستند الجذر أي شيء تريده.
DirectoryIndex index.html index.cgi index.php
يجب أن يبدأ ترتيب المستندات بالأهم وأن ينتقل عبر الرتب إلى الأقل أهمية. لذا ، إذا لم يكن لدينا ملف HTML أو CGI ، فستتحول الإرجاع إلى index.php. ويمكنك حتى تسمية هذه الملفات home.php أو someotherfile.php وهذا كله بناء جملة صالح.
فرض WWW أو غير WWW مجال فرعي
يمكن أن تعمل Google مع كلا الإصدارين من نطاق موقع الويب الخاص بك إذا لم تحدده www.domain.com أو فقط domain.com. في تجربتي فمن أفضل الممارسات ل اختيار واحد من هذه وتعيينها كخيار وحيد عبر. htaccess. ثم لن تقوم Google بفهرسة عناوين URL المختلفة مع الإشارة إلى النطاق الفرعي WWW بينما البعض الآخر لا يفعل ذلك.
# فرض WWW Subdomain RewriteEngine على RewriteCond٪ HTTP_HOST ^ domain.com [NC] RewriteRule ^ (. *) $ http://www.domain.com/$1 [L، R = 301] # لا إعادة كتابة نطاق فرعي على RewriteCond٪ HTTP_HOST! ^ domain.com $ [NC] RewriteRule ^ (. *) $ http://domain.com/$1 [L، R = 301]
يأتي مقتطف الشفرة هذا من أرشيف CSS-Tricks ويوفر حلاً مفيدًا للغاية. يجب عليك تحديث النطاق ليكون كل ما تحتاجه لموقع الويب الخاص بك. وإلا ستكون هناك مشاكل وستلاحظ على الفور! لكنني أؤيد بشدة فرض أحد هذين الخيارين وهو في أعلى قائمة المهام بعد إطلاق موقع ويب جديد.
قوة تنزيل ملف الوسائط
مقتطف آخر مهم إلى حد ما يسمح بإجبار بعض أنواع الوسائط على تنزيل بدلاً من عرضها في المستعرض. يمكنني على الفور التفكير في مستندات PDF وملفات الصوت MP3 التي قد يتم تقديمها بتنسيق قابل للتنزيل ، ولكن كيف يمكنك ذلك تأكد من أنها قابلة للتحميل? لقد وجدت مقالًا مشابهًا نُشر على دليل Htaccess والذي يوضح مقتطف الشفرة هذا.
AddType application / octet-stream .zip .mp3 .mp4
لا تتردد في تضمين المزيد من أنواع الملفات في نهاية هذا الخط. سيتم تنزيل جميع تنسيقات الوسائط التي تستخدم نوع MIME octet-stream. يعد فرض ذلك عبر htaccess طريقًا مباشرًا للغاية لضمان عدم قدرة الأشخاص على عرض هذه الملفات في المستعرض.
وثائق خطأ مخصص
آخر قطعة أخيرة أريد إضافتها هي قالب كامل من مستندات الخطأ المخصصة. عادةً ما يتم عرض رموز الأرقام هذه فقط في نهاية الخادم. ولكن هناك الكثير من وثائق الخطأ هذه التي يجب أن تكون على دراية بها. بعض الأمثلة قد تكون أخطاء 403/404 و ال إعادة توجيه 301.
قالب رمز الخطأ هذا يبدأ من 100 وينتقل إلى أعلى 500 خطأ. يرجى ملاحظة أنك بوضوح لا تحتاج إلى كل هذه. ستكون الأخطاء الأكثر شيوعًا ضرورية فقط ، وربما بعض المقتطفات الغامضة إذا كنت تشعر بالحاجة.
إذا لم تتعرف على رمز ما ، فابحث عنه في ويكيبيديا للحصول على فهم أفضل.
ErrorDocument 100 / 100_CONTINUE ErrorDocument 101 / 101_SWITCHING_PROTOCOLS ErrorDocument 102 / 102_PROCESSING ErrorDocument 200 / 200_OK ErrorDocument 201 / 201_CREATED ErrorDocument 202 / 202_ACCEPTED ErrorDocument 203 / 203_NON_AUTHORITATIVE ErrorDocument 204 / 204_NO_CONTENT ErrorDocument 205 / 205_RESET_CONTENT ErrorDocument 206 / 206_PARTIAL_CONTENT ErrorDocument 207 / 207_MULTI_STATUS ErrorDocument 300 / 300_MULTIPLE_CHOICES ErrorDocument 301 / 301_MOVED_PERMANENTLY ErrorDocument 302 / 302_MOVED_TEMPORARILY ErrorDocument 303 / 303_SEE_OTHER ErrorDocument 304 / 304_NOT_MODIFIED ErrorDocument 305 / 305_USE_PROXY ErrorDocument 307 / 307_TEMPORARY_REDIRECT ErrorDocument 400 / 400_BAD_REQUEST ErrorDocument 401 / 401_UNAUTHORIZED ErrorDocument 402 / 402_PAYMENT_REQUIRED ErrorDocument 403 / 403_FORBIDDEN ErrorDocument 404 / 404_NOT_FOUND ErrorDocument 405 / 405_METHOD_NOT_ALLOWED ErrorDocument 406 / 406_NOT_ACCEPTABLE ErrorDocument 407 / 407_PROXY_AUTHENTICATION_REQUIRED ErrorDocument 408 / 408_REQUEST_TIME_OUT ErrorDocument 409 / 409_CONFLICT ErrorDocument 410 / 410_GONE ErrorDocument 411 / 411_LENGTH_REQUIRED ErrorDocument 412 / 412_PRECONDITION_FAILED ErrorDocument 413 / 413_REQUEST_ENTITY_TOO_LARGE ErrorDocument 414 / 414_REQUEST_URI_TOO_LARGE ErrorDocument 415 / 415_UNSUPPORTED_MEDIA_TYPE ErrorDocument 416 / 416_RANGE_NOT_SATISFIABLE ErrorDocument 417 / 417_EXPECTATION_FAILED ErrorDocument 422 / 422_UNPROCESSABLE_ENTITY ErrorDocument 423 / 423_LOCKED ErrorDocument 424 / 424_FAILED_DEPENDENCY ErrorDocument 426 / 426_UPGRADE_REQUIRED ErrorDocument 500 / 500_INTERNAL_SERVER_ERROR ErrorDocument 501 / 501_NOT_IMPLEMENTED ErrorDocument 502 / 502_BAD_GATEWAY ErrorDocument 503 / 503_SERVICE_UNAVAILABLE ErrorDocument 504 / 504_GATEWAY_TIME_OUT ErrorDocument 505 / 505_VERSION_NOT_SUPPORTED ErrorDocument 506 / 506_VARIANT_ALSO_VARIES ErrorDocument 507 / 507_INSUFFICIENT_STORAGE ErrorDocument 510 / 510_NOT_EXTENDED
على الانترنت. htaccess Webapps
- Htaccess باني
- .htaccess إعادة توجيه مولد
- .htaccessEditor - إنشاء ملف. htaccess
- وزارة الدفاع إعادة كتابة مولد GenerateIt.net
موارد مفيدة أخرى
- .htaccess في المتشعب ويكي
- الرسمية اباتشي htaccess الوثائق
- اسأل اباتشي المدونة - Htaccess المحفوظات
- الدليل النهائي ل htaccess و mod_rewrite
- كل ما تريد معرفته عن قواعد Mod_Rewrite ولكن خائف من طرحه
افكار اخيرة
هناك الكثير من الموارد التي لا تعد ولا تحصى على الإنترنت لمناقشة ملفات htaccess. تعد مقالاتي و webapps المرتبطة مكانًا رائعًا للبدء. لكن استمر في ممارسة الأفكار الجديدة ولا تخف اختبار مقتطفات الكود. طالما لديك ملف النسخ الاحتياطي ثم يمكنك اختبار أي شيء تريده وهي تجربة تعليمية ممتعة.
إذا كانت لديك أفكار أو اقتراحات أخرى حول إدارة htaccess ، فيرجى مشاركتها معنا في مجال مناقشة المناقشة أدناه.