2020 دليل كامل إلى .HTACCESS – من الأساسيات إلى التعلم المتقدم

إفشاء: يساعدك دعمك في الحفاظ على تشغيل الموقع! نحصل على رسوم إحالة لبعض الخدمات التي نوصي بها في هذه الصفحة.


باستخدام ملف .htaccess ، يمكنك التحكم في العديد من جوانب خادم الويب Apache (ومتغيراته المتعددة). أدناه ، سوف تتعلم كل ما تحتاج إلى معرفته لإعداد صفحات الخطأ الخاصة ، وأدلة حماية كلمة المرور ، وإعادة التوجيه ، وأكثر من ذلك بكثير.

Contents

كيفية استخدام هذا الدليل

تم بناء هذا الدليل ليكون بمثابة مورد شامل لاستخدام .htaccess. إذا كنت جديدًا تمامًا في استخدام .htaccess – فقد ترغب في البدء بالفصل الأول “أساسيات .htaccess” أدناه.

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

.أساسيات htaccess

دعنا نتعرف على بعض الأساسيات .htaccess قبل الغوص في الأوامر.

ما هو. htaccess?

ملف .htaccess هو ملف تكوين يتحكم في كيفية استجابة خادم الويب للطلبات المختلفة. وهو مدعوم من قبل العديد من خوادم الويب ، بما في ذلك خادم الويب Apache الشهير الذي يستخدمه معظم مزودي استضافة الويب التجاريين.

.تعمل ملفات htaccess على مستوى الدليل ، مما يتيح لها تجاوز إعدادات التكوين العامة لأوامر htaccess الأعلى في شجرة الدليل.

كيف يتم استخدام htaccess?

تتضمن بعض الاستخدامات الشائعة لـ .htaccess إعادة توجيه عناوين URL ، وتمكين حماية كلمة المرور لمواقع الويب (أو صفحات مواقع الويب) ؛ عرض صفحات الخطأ المخصصة (مثل 404 صفحات) ؛ وتعزيز تحسين محركات البحث من خلال سياسة مائلة ثابتة.

في الحالة الأخيرة ، قد يختار مشرف الموقع إما طلب شريحة مائلة في نهاية كل عنوان URL على الموقع أو لا.

لماذا يطلق عليه. htaccess?

.htaccess تعني “وصول النص التشعبي”. تم اشتقاق الاسم من الاستخدام الأصلي للأداة والذي كان للتحكم في وصول المستخدم إلى ملفات معينة على أساس كل دليل.

باستخدام مجموعة فرعية من توجيهات إعدادات http.conf الخاصة بـ Apache ، سمح htaccess لمسؤول النظام بتقييد الوصول إلى الدلائل الفردية للمستخدمين باسم وكلمة مرور محددين في ملف hthtwd المصاحب..

بينما لا تزال ملفات .htaccess تُستخدم لهذا الغرض ، إلا أنها تُستخدم أيضًا لعدد من الأشياء الأخرى التي سنتناولها في هذا الدليل.

أين هو ملف .htaccess?

نظريًا ، يمكن أن يحتوي كل مجلد (دليل) على خادمك على مجلد واحد. بشكل عام ، على الرغم من ذلك ، يوجد مجلد في مجلد جذر الويب الخاص بك – هذا هو المجلد الذي يحتوي على كل محتوى موقع الويب الخاص بك ، وعادة ما يتم تسميته شيئًا مثل public_html أو www.

إذا كان لديك دليل واحد يحتوي على العديد من الأدلة الفرعية لمواقع الويب ، فعادة ما يكون هناك ملف htaccess في الدليل الرئيسي (public_html) وكذلك ملف واحد في كل دليل فرعي (/ sitename).

لماذا لا يمكنني العثور على ملف htaccess الخاص بي?

في معظم أنظمة الملفات ، تكون أسماء الملفات التي تبدأ بنقطة (.) ملفات مخفية. هذا يعني أنها لا تكون مرئية بشكل افتراضي.

لكن ليس من الصعب الوصول إليهم. يجب أن يحتوي عميل FTP أو مدير الملفات على إعداد “إظهار الملفات المخفية”. سيكون هذا في أماكن مختلفة في برامج مختلفة ، ولكنه عادة ما يكون في “التفضيلات” أو “الإعدادات” أو “خيارات المجلد”. في بعض الأحيان ستجده في قائمة “عرض”.

ماذا لو لم يكن لدي ملف htaccess?

بادئ ذي بدء ، تأكد من تشغيل “إظهار الملفات المخفية” (أو ما يعادله) ، بحيث يمكنك التأكد من عدم وجود ملف. في كثير من الأحيان ، يتم إنشاء ملفات .htaccess تلقائيًا ، لذلك سيكون لديك عادةً ملف واحد. لكن هذا ليس الحال دائمًا.

إذا لم يكن لديك حقًا ، يمكنك إنشاء واحد بسهولة:

  • بدء ملف جديد في محرر نص عادي.
  • احفظه بتنسيق ASCII (وليس UTF-8 أو أي شيء آخر) باسم htaccess.
    • تأكد من أنها ليست htaccess.txt أو شيء من هذا القبيل. يجب أن يكون للملف فقط اسم .htaccess بدون ملحق ملف إضافي.
  • قم بتحميله إلى الدليل المناسب عبر FTP أو مدير الملفات المستند إلى المستعرض.

معالجة الأخطاء

يعد استخدام ملفات .htaccess لتحديد مستندات الخطأ أمرًا بسيطًا للغاية ، وهو أحد أبسط الأشياء التي يمكنك القيام بها باستخدام هذه الميزة.

ما هو رمز الخطأ?

عندما يتم تقديم طلب إلى خادم ويب ، فإنه يحاول الاستجابة لهذا الطلب ، عادة عن طريق تسليم مستند (في حالة صفحات HTML) ، أو عن طريق الوصول إلى تطبيق وإرجاع الإخراج (في حالة أنظمة إدارة المحتوى و تطبيقات الويب الأخرى).

إذا حدث خطأ ما في هذا ، فسيحدث خطأ. أنواع مختلفة من الأخطاء لها رموز خطأ مختلفة. من المحتمل أنك على دراية بالخطأ 404 ، والذي يتم إرجاعه إذا تعذر العثور على المستند على الخادم.

هناك العديد من رموز الخطأ الأخرى التي يمكن للخادم الرد عليها.

أخطاء طلب العميل

  • 400 طلب سىء
  • 401 التفويض مطلوب
  • 402 – الدفع مطلوب (لم يستخدم بعد)
  • 403 ممنوع
  • 404 غير موجود
  • 405 – الطريقة غير مسموح بها
  • 406 – غير مقبول (ترميز)
  • 407-مصادقة الوكيل مطلوبة
  • 408 – مهلة الطلب
  • 409 – طلب متضارب
  • 410 – ذهب
  • 411 – طول المحتوى مطلوب
  • 412 – فشل الشرط المسبق
  • 413 – طلب كيان طويل جداً
  • 414 – طلب URI طويل جداً
  • 415 – نوع وسائط غير مدعوم.

أخطاء الخادم

  • 500 – خطأ داخلي في الخادم
  • 501 – لم يتم التنفيذ
  • 502 مدخل غير صالح
  • 503 الخدمة غير متوفرة
  • البوابة 504 انتهى الزمن
  • 505 – إصدار HTTP غير مدعوم.

معالجة الأخطاء الافتراضية

إذا لم تحدد أي نوع من معالجة الأخطاء ، فسيرجع الخادم ببساطة الرسالة إلى المتصفح ، وسيعرض المتصفح رسالة خطأ عامة للمستخدم. هذا عادة ليس مثاليا.

تحديد وثائق الخطأ

قم بإنشاء مستند HTML لكل رمز خطأ تريد التعامل معه. يمكنك تسمية ما تشاء ، ولكن من المفيد تسميتهم بشيء يساعدك على تذكر ما يبحثون عنه ، مثل not-found.html أو ببساطة 404.html.

ثم ، في ملف .htaccess ، حدد المستند الذي تريد استخدامه مع كل نوع من أنواع الأخطاء.

ErrorDocument 400 /errors/bad-request.html
ErrorDocument 401 /errors/auth-reqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/not-found.html
ErrorDocument 500 /errors/server-err.html

لاحظ أن كل توجيه يوضع على خطه الخاص.

وهذا كل شيء. بسيط جدا.

البدائل إلى .htaccess لمعالجة الخطأ

معظم أنظمة إدارة المحتوى (CMS) مثل WordPress و Drupal ، ومعظم تطبيقات الويب ، سيكون لها طريقتها الخاصة في التعامل مع معظم رموز الخطأ هذه.

حماية كلمة المرور مع .htaccess

كان الغرض الأصلي من ملفات .htaccess هو تقييد الوصول إلى دلائل معينة على أساس كل مستخدم (ومن هنا الاسم ، والوصول إلى النص التشعبي). لذا سنلقي نظرة على ذلك أولاً.

.htpasswd

يتم تخزين أسماء المستخدمين وكلمات المرور لنظام .htaccess في اسم ملف .htpasswd.

يتم تخزين كل منها على سطر واحد ، في الشكل:

اسم المستخدم: كلمة المرور المشفرة

فمثلا:

جون سميث: F418zSM0k6tGI

من المهم أن تدرك أن كلمة المرور المخزنة في الملف ليست كلمة المرور الفعلية المستخدمة لتسجيل الدخول. بل هي تجزئة تشفير لكلمة المرور.

هذا يعني أنه تم تشغيل كلمة المرور من خلال خوارزمية تشفير ، ويتم تخزين النتيجة. عندما يقوم المستخدم بتسجيل الدخول ، يتم إدخال كلمة مرور النص العادي وتشغيلها من خلال نفس الخوارزمية. إذا كان الإدخال هو نفسه ، تتطابق كلمات المرور ويتم منح المستخدم حق الوصول.

تخزين كلمات المرور بهذه الطريقة يجعلها أكثر أمانًا – إذا تمكن شخص ما من الوصول إلى ملف .htpasswd ، فلن يرى سوى كلمات المرور المجزأة ، وليس الأصلية. ولا توجد طريقة لإعادة بناء الأصول من التجزئة – إنها طريقة واحدة للتشفير.

يمكن استخدام العديد من خوارزميات التجزئة المختلفة:

  • خوارزميات آمنة – استخدم واحدة من هذه
    • bcrypt – هذا هو الأكثر أمانًا ، ولكنه أيضًا الأبطأ في الحساب. وهو مدعوم من قبل Apache و Nginx.
    • md5 – هذه هي خوارزمية التجزئة الافتراضية التي تستخدمها الإصدارات الحالية من Apache. لا يدعمه Nginx.
  • خوارزميات غير آمنة – لا تستخدمها
    • crypt () – كانت هذه هي وظيفة التجزئة الافتراضية ، ولكنها ليست آمنة للغاية.
    • SHA و SHA مملح.

إنشاء أسماء المستخدمين وكلمات المرور في سطر الأوامر

يمكنك إنشاء ملف .htpasswd وإضافة أزواج اسم المستخدم وكلمة المرور إليه مباشرةً من سطر الأوامر أو محطة SSH.

أمر التعامل مع ملف .htpasswd هو ببساطة htpasswd.

لإنشاء ملف .htpasswd جديد ، استخدم الأمر مع الخيار -c (للإنشاء) ، ثم اكتب المسار إلى الدليل (وليس عنوان URL ، المسار الفعلي على الخادم). يمكنك أيضًا تضمين مستخدم تريد إضافته.

> htpasswd -c /usr/local/etc/.htpasswd johnsmith

يؤدي هذا إلى إنشاء ملف .htpasswd جديد في الدليل / etc / وإضافة سجل لمستخدم يدعى johnsmith. ستتم مطالبتك بكلمة مرور ، والتي سيتم تخزينها أيضًا ، باستخدام تشفير md5.

إذا كان هناك بالفعل ملف .htpasswd في الموقع المحدد ، فلن يتم إنشاء ملف جديد – يتم إلحاق المستخدم الجديد ببساطة بالملف الموجود.

إذا كنت تفضل استخدام خوارزمية التجزئة bcrypt ، استخدم الخيار -b.

تجزئة كلمة المرور بدون سطر الأوامر

إذا كنت لا تشعر بالراحة عند استخدام سطر الأوامر أو محطة SSH (أو إذا لم يكن لديك إمكانية الوصول إليه لسبب ما) ، يمكنك ببساطة إنشاء ملف .htpasswd وتعبئته باستخدام محرر نص عادي وتحميله عبر FTP أو مدير الملفات.

ولكن ستحتاج بعد ذلك إلى تشفير كلمات المرور الخاصة بك بطريقة أو بأخرى ، نظرًا لأن أمر htpasswd كان يعتني بذلك نيابة عنك.

هناك العديد من أدوات تشفير .htpasswd المتاحة على الإنترنت. ربما يكون أفضل واحد هو مولد htpasswd في Aspirine.org.

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

مكان حفظ ملف .htpasswd الخاص بك

لست بحاجة إلى أن يكون لديك ملف hthtwd منفصل لكل ملف htaccess. في الواقع ، لا يجب عليك ذلك. في معظم الظروف العادية ، يجب أن يكون لديك واحد لحساب استضافة الويب بالكامل أو دليل الخادم الرئيسي.

يجب ألا يكون ملف .htpasswd في دليل يمكن للجميع الوصول إليه – وليس public_html أو www أو أي دليل فرعي. يجب أن تكون أعلى من تلك الموجودة في مجلد يمكن الوصول إليه فقط من الخادم نفسه.

كيفية استخدام .htpasswd مع .htaccess

يمكن أن يكون لكل دليل ملف htaccess خاص به ، مع مجموعة خاصة به من المستخدمين المسموح لهم بالوصول إليه.

إذا كنت تريد وصول أي شخص (بما في ذلك المستخدمين غير المسجلين) إلى الدليل وملفاته ، فلا تفعل شيئًا – هذا هو الإعداد الافتراضي.

لتقييد الوصول ، تحتاج إلى إضافة ما يلي إلى ملف htaccess.

AuthUserFile /usr/local/etc/.htpasswd
اسم المصادقة "اسم المنطقة الآمنة"
AuthType Basic

تتطلب مستخدم صالح

يحدد السطر الأول المسار واسم الملف لقائمة أسماء المستخدمين وكلمات المرور الخاصة بك. يحدد السطر الثاني اسمًا للمنطقة الآمنة. يمكن أن يكون هذا أي شيء يعجبك. يحدد السطر الثالث المصادقة “الأساسية” ، وهو ما تحتاجه عادةً.

تحدد العلامة ما هو محدود (في هذه الحالة ، القدرة على GET أو POST إلى أي ملف في الدليل). ضمن زوج العلامات ، توجد قائمة بالأشخاص المسموح لهم بالوصول إلى الملفات.

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

AuthUserFile /usr/local/etc/.htpasswd
اسم المصادقة "اسم المنطقة الآمنة"
AuthType Basic

تتطلب johnsmith المستخدم
تتطلب مستخدم janedoe

يمكنك أيضًا وضع المستخدمين في مجموعات والسماح بالوصول بناءً على المجموعة. يتم ذلك عن طريق إضافة ملف آخر يحدد المجموعات.

يبدو ملف المجموعة ، الذي يمكن تسميته (على سبيل المثال) .htgroups كما يلي:

المشرف: جونسميث جانيدو
الموظفين: jackdoe cindysmith

ثم يمكنك تحديده في ملف htaccess الخاص بك:

AuthUserFile /usr/local/etc/.htpasswd
AuthGroupFile /usr/local/etc/.htgroup
اسم المصادقة "منطقة الإدارة"
AuthType Basic

تتطلب مشرف المجموعة

بدائل للتطبيق .htpasswd

إن استخدام .htaccess و .htpasswd لتقييد الوصول إلى ملفات معينة على الخادم الخاص بك أمر منطقي فقط إذا كان لديك الكثير من الملفات الثابتة. تم تطوير الميزة عندما كانت مواقع الويب عادة عبارة عن مجموعة من مستندات HTML والموارد ذات الصلة.

إذا كنت تستخدم نظام إدارة محتوى (CMS) مثل WordPress أو Drupal ، فيمكنك استخدام ميزات إدارة المستخدم المضمنة لتقييد أو منح الوصول إلى المحتوى.

يتضمن تمكين جانب الخادم (SSI)

دعنا الآن نتعرف على ماهية جوانب جانب الخادم وكيف يمكنك استخدامها.

ما هي جوانب الخادم?

SSI أو Server Side Includes ، هي لغة برمجة نصية خفيفة الوزن تستخدم بشكل أساسي لتضمين مستندات HTML في مستندات HTML أخرى. وهذا يجعل من السهل إعادة استخدام العناصر الشائعة ، مثل الرؤوس والتذييلات والأشرطة الجانبية والقوائم. يمكنك التفكير في الأمر باعتباره مقدمة لأنظمة إدارة المحتوى والمحتويات.


يحتوي SSI أيضًا على توجيهات شرطية (إذا ، وإلا ، وما إلى ذلك) ومتغيرات ، مما يجعلها لغة برمجة نصية كاملة ، إذا كان من الصعب استخدامها إلى حد ما. (عادةً ما يؤدي أي مشروع أكثر تعقيدًا من حفنة من العناصر إلى قيام المطور باختيار لغة أكثر قوة مثل PHP أو Perl.)

تمكين SSI

سيتم تمكين “جانب الخادم” من بعض خوادم الاستضافة افتراضيًا. إذا لم يكن الأمر كذلك ، فيمكنك تمكينه بملف htaccess الخاص بك ، كما يلي:

AddType text / html .shtml
AddHandler الذي تم تحليله بواسطة الخادم. shtml
تتضمن خيارات الفهارس FollowSymLinks

وهذا يجب تمكين SSI لجميع الملفات التي لها ملحق. shtml.

SSI على ملفات .html

إذا كنت تريد تمكين تحليل SSI على ملفات .html ، فيمكنك إضافة توجيه لإنجاز ذلك:

AddHandler تم تحليله بواسطة الخادم. html

فائدة القيام بذلك هي أنه يمكنك استخدام SSI دون إخبار العالم أنك تستخدمه. أيضًا ، إذا قمت بتغيير عمليات التنفيذ في المستقبل ، يمكنك الاحتفاظ بامتدادات ملفات .html.

الجانب السلبي لذلك هو أنه سيتم تحليل كل ملف .html باستخدام SSI. إذا كان لديك الكثير من ملفات .html التي لا تحتاج في الواقع إلى تحليل SSI ، فقد يؤدي ذلك إلى تقديم الكثير من التحميلات غير الضرورية للخادم ، مما يؤدي إلى إبطاء أوقات تحميل صفحتك واستخدام موارد وحدة المعالجة المركزية.

SSI على صفحة الفهرس الخاصة بك

إذا كنت لا تريد تحليل جميع ملفات .html ، ولكنك تريد استخدام SSI في صفحة الفهرس (الرئيسية) ، فسيلزمك تحديد ذلك في ملف htaccess..

وذلك لأنه عندما يبحث خادم الويب عن صفحة فهرس الدليل ، فإنه يبحث عن index.html ، ما لم تخبره بخلاف ذلك.

إذا لم تقم بتحليل ملفات .html ، فستحتاج إلى تسمية صفحة الفهرس index.shtml لكي تعمل SSI ، ولا يعرف خادمك البحث عن ذلك افتراضيًا.

لتمكين ذلك ، ما عليك سوى إضافة:

indexIndex index.shtml index.html

ينبه هذا خادم الويب إلى أن ملف index.shtml هو ملف الفهرس الرئيسي للدليل. المعلمة الثانية ، index.html هي نسخة احتياطية ، في حالة عدم العثور على index.shtml.

القائمة السوداء IP والقائمة البيضاء IP

يمكنك استخدام .htaccess لحظر المستخدمين من عنوان IP معين (القائمة السوداء). هذا مفيد إذا كنت قد حددت مستخدمين فرديين من عناوين IP محددة تسببت في مشاكل.

يمكنك أيضًا القيام بالعكس ، وحظر الجميع باستثناء الزوار من عنوان IP معين (القائمة البيضاء). هذا مفيد إذا كنت بحاجة إلى تقييد الوصول إلى المستخدمين المعتمدين فقط.

القائمة السوداء بواسطة IP

لحظر عناوين IP محددة ، ما عليك سوى استخدام التوجيه التالي ، مع عناوين IP المناسبة:

يسمح النظام ، ينكر
ينكر من 111.22.3.4
ينكر من 789.56.4.
تسمح من الجميع

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

إذا تم عكس ذلك لرفض الأمر ، فاحرص على أن يكون آخر شيء يتم تقييمه هو السماح من جميع التوجيهات ، والذي سيسمح للجميع بتجاوز عبارات الرفض.

لاحظ السطر الثالث الذي ينكر من 789.56.4. – هذا ليس عنوان IP كاملاً. سيؤدي هذا إلى رفض جميع عناوين IP داخل تلك الكتلة (أي تلك التي تبدأ بـ 789.56.4).

يمكنك تضمين أي عدد تريده من عناوين IP ، عنوان واحد في كل سطر ، مع رفض من التوجيه.

القائمة البيضاء بواسطة IP

ظهر القائمة السوداء في القائمة البيضاء – يقيد الجميع ما عدا تلك التي تحددها.

كما قد تعتقد ، يجب عكس توجيه الطلب ، بحيث يتم رفض الجميع أولاً ، ولكن بعد ذلك يُسمح بعناوين معينة.

رفض الأمر ، والسماح
رفض من الجميع
السماح من 111.22.3.4
السماح من 789.56.4.

إجراءات الحظر

.يمكن استخدام htaccess لحظر المستخدمين حسب المجال أو المُحيل. ويمكنك استخدامه لحظر الروبوتات وكاشطات. دعنا نكتشف كيف.

كيفية حظر المستخدمين حسب المجال

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

ومع ذلك ، لن يعمل هذا ضد الأشخاص الذين يمكنهم التحكم في تعيين عنوان IP العكسي لنظام أسماء النطاقات.

يسمح النظام ، ينكر
ينكر من example.com
تسمح من الجميع

يعمل هذا مع النطاقات الفرعية أيضًا – في المثال السابق ، سيتم أيضًا حظر الزائرين من xyz.example.com.

كيفية منع المستخدمين عن طريق الإحالة

المُحيل هو موقع الويب الذي يحتوي على رابط إلى موقعك. عندما يتبع شخص ما رابطًا لصفحة على موقعك ، فإن الموقع الذي جاء منه هو المُحيل.

هذا لا يعمل فقط مع الروابط التشعبية القابلة للنقر إلى موقع الويب الخاص بك.

يمكن للصفحات في أي مكان على الإنترنت أن ترتبط مباشرة بصورك (“hotlinking”) – باستخدام النطاق الترددي الخاص بك ، وربما التعدي على حقوق النشر الخاصة بك ، دون تقديم أي فائدة لك فيما يتعلق بحركة المرور. ويمكنهم أيضًا الارتباط إلى ملفات CSS أو نصوص JS أو موارد أخرى.

معظم مالكي مواقع الويب على ما يرام عندما يحدث ذلك قليلاً ، ولكن في بعض الأحيان يمكن أن يتحول هذا النوع من الأشياء إلى إساءة.

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

لأيٍّ من هذه الأسباب ، قد ترغب في حظر الطلبات الواردة من مُحيلين محددين.

للقيام بذلك ، تحتاج إلى تمكين وحدة mod_rewrite. يتم تمكين هذا بشكل افتراضي لمعظم مضيفي الويب ، ولكن إذا لم يكن كذلك (أو لم تكن متأكدًا) ، يمكنك عادةً أن تطلب من شركة الاستضافة. (إذا لم يتمكنوا من ذلك أو لن يقوموا بتمكينه ، فقد ترغب في التفكير في مضيف جديد.)

تعتمد توجيهات .htaccess التي تحقق الحظر القائم على المُحيل على محرك mod_rewrite.

يبدو الرمز المراد حظره بواسطة المُحيل:

إعادة كتابة المحرك
RewriteCond٪ ^ http: //.*example.com [NC، OR]
RewriteCond٪ ^ http: //.*anotherexample.com [NC، OR]
RewriteCond٪ ^ http: //.*onemoreexample.com [NC]
RewriteRule. * – [F]

هذا صعب بعض الشيء ، لذا دعنا نسير فيه.

ينبه السطر الأول ، RewriteEngine on ، المحلل اللغوي إلى أن سلسلة من التوجيهات المتعلقة بإعادة الكتابة قادمة.

تحظر كل سطر من الأسطر الثلاثة التالية مجال إحالة. الجزء الذي ستحتاج إلى تغييره لاستخدامك الخاص هو اسم المجال (مثال) وامتداد (.com).

الشرطة المائلة للخلف قبل .com هي حرف هروب. مطابقة النمط المستخدمة في اسم المجال هي تعبير عادي ، وتعني النقطة شيئًا في RegEx ، لذا يجب “الهروب” باستخدام الخط المائل الخلفي.

تحدد NC في الأقواس أن المطابقة يجب ألا تكون حساسة لحالة الأحرف. OR هو حرف “أو” حرفي ، ويعني أن هناك قواعد أخرى قادمة. (أي – إذا كان عنوان URL هو هذا أو هذا أو هذا ، فاتبع قاعدة إعادة الكتابة هذه.)

السطر الأخير هو قاعدة إعادة الكتابة الفعلية. تعني كلمة [F] “ممنوع”. ستفشل أي طلبات ذات مُحيل تتطابق مع تلك الموجودة في القائمة ، وستظهر رسالة خطأ 403 ممنوع.

حجب برامج التتبع وكاشطات الويب

أحد الجوانب الأكثر إزعاجًا لإدارة موقع الويب هو اكتشاف أن النطاق الترددي الذي يتم تناوله من قبل الزوار من غير البشر – الروبوتات والزواحف وكاشطات الويب.

هذه هي برامج مصممة لسحب المعلومات من موقعك ، عادة بغرض إعادة نشرها كجزء من بعض عمليات تحسين محركات البحث منخفضة الدرجة.

هناك ، بطبيعة الحال ، الروبوتات الشرعية – مثل تلك من محركات البحث الرئيسية. لكن الباقي مثل الآفات التي تأكل الموارد الخاصة بك ولا تقدم لك أي قيمة على الإطلاق.

تم تحديد عدة مئات من البوتات. لن تتمكن أبدًا من حظرهم جميعًا ، ولكن يمكنك إبقاء النشاط في مستوى هدير باهت من خلال حظر أكبر عدد ممكن من الأشخاص.

هناك مجموعة مفيدة من قواعد إعادة الكتابة التي تحظر أكثر من 400 روبوت معروف تم تجميعها بواسطة AskApache.

تحديد ملف افتراضي للدليل

عندما يتم تقديم طلب إلى خادم ويب لعنوان URL لا يحدد اسم ملف ، فإن الافتراض المدمج في معظم خوادم الويب هو أن عنوان URL يشير إلى دليل.

لذا ، إذا طلبت http://example.com ، فسوف يبحث Apache (ومعظم خوادم الويب الأخرى) في الدليل الجذر للنطاق (عادةً / public_html أو شيء مشابه ، ولكن ربما / example-com) للإعداد الافتراضي ملف.

يسمى الملف الافتراضي index.html بشكل افتراضي. يعود هذا إلى بداية الإنترنت عندما كان موقع الويب عبارة عن مجموعة من المستندات ، وكانت الصفحة “الرئيسية” عادةً فهرسًا لتلك المستندات.

ولكن قد لا ترغب في أن تكون index.html هي الصفحة الافتراضية. على سبيل المثال ، قد تحتاج إلى نوع ملف مختلف ، مثل index.shtml أو index.xml أو index.php.

أو قد لا تفكر في صفحتك الرئيسية على أنها “فهرس” ، وتريد تسميتها شيئًا مختلفًا ، مثل home.html أو main.html.

تعيين صفحة الدليل الافتراضية

.يتيح لك htaccess تعيين الصفحة الافتراضية للدليل بسهولة:

فهرسة الدليل [اسم الملف هنا]

إذا كنت تريد أن يكون الإعداد الافتراضي home.html ، فهو أمر سهل مثل:

DirectoryIndex home.html

إعداد صفحات افتراضية متعددة

يمكنك أيضًا تحديد أكثر من دليل واحد:

indexIndex index.php index.shtml index.html

الطريقة التي يعمل بها هذا هو أن خادم الويب يبحث عن الأول أولاً. إذا لم تتمكن من العثور على ذلك ، فإنها تبحث عن الثانية ، وهكذا.

لماذا تريد القيام بذلك؟ بالتأكيد تعرف الملف الذي تريد استخدامه كصفحتك الافتراضية ، أليس كذلك?

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

تعني القدرة على وضع هذه القواعد في ملف htaccess واحد في الجذر أنه ليس عليك تكرار جميع التوجيهات الأخرى في الملف على كل مستوى دليل.

إعادة توجيه URL وإعادة كتابة URL

تعد عمليات إعادة توجيه عناوين URL من الاستخدامات الأكثر شيوعًا لملفات htaccess.

يجب استخدام عمليات إعادة توجيه عنوان URL عند تغيير عنوان URL لمستند أو مورد. هذا مفيد بشكل خاص إذا كنت قد أعدت تنظيم موقع الويب الخاص بك أو تغيير أسماء المجال.

301 مقابل 302 عمليات إعادة التوجيه

من وجهة نظر المتصفح ، هناك نوعان من عمليات إعادة التوجيه ، 301 و 302. (تشير هذه الأرقام إلى رمز الخطأ الذي تم إنشاؤه بواسطة خادم الويب.)

301 تعني “تم نقله نهائيًا” بينما تعني 302 “تم نقله مؤقتًا”. في معظم الحالات ، تحتاج إلى استخدام 301. وهذا يحافظ على أي حقوق ملكية تحسين محركات البحث على عنوان URL الأصلي ، ويمررها إلى الصفحة الجديدة.

سيؤدي ذلك أيضًا إلى قيام معظم المتصفحات بتحديث إشاراتها المرجعية. ستخزن معظم المتصفحات أيضًا التخزين القديم إلى الجديد ، لذا سيطلبون ببساطة عنوان URL الجديد عندما يحاول رابط أو مستخدم الوصول إلى الأصل. إذا كان عنوان URL قد تغير بشكل دائم ، فهذه كلها نتائج مرغوبة.

هناك سبب قليل جدًا لاستخدام 302 من عمليات إعادة التوجيه ، نظرًا لوجود سبب صغير جدًا لتغيير عنوان URL مؤقتًا. تغيير عنوان URL غير مرغوب فيه على الإطلاق ، ولكنه ضروري في بعض الأحيان. تغييره مؤقتًا ، مع خطة تغييره مرة أخرى لاحقًا ، فكرة سيئة ويمكن تجنبها دائمًا تقريبًا.

ستستخدم جميع الأمثلة في هذا القسم إعادة التوجيه 301.

إعادة التوجيه مقابل إعادة الكتابة

هناك طريقتان مختلفتان “لتغيير” عنوان URL مع أوامر htaccess – الأمر Redirect ومحرك mod_rewrite.

يرسل أمر إعادة التوجيه في الواقع رسالة إعادة توجيه إلى المتصفح ، تخبره عن عنوان URL الآخر الذي تبحث عنه.

عادةً ، تقوم أداة mod_rewrite “بترجمة” عنوان URL واحد (العنوان المقدم في الطلب) إلى شيء سيفهمه نظام الملفات أو نظام إدارة المحتوى ، ثم يعالج الطلب كما لو كان عنوان URL المترجم هو عنوان URL المطلوب.

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

يمكن أيضًا استخدام أداة mod_rewrite لإنتاج عمليات إعادة التوجيه 301 التي تعمل بنفس الطريقة التي يعمل بها أمر إعادة التوجيه ، ولكن مع المزيد من الخيارات للقواعد – يمكن أن تحتوي mod_rewrite على إرشادات معقدة لمطابقة وإعادة كتابة النمط ، والتي لا يمكن لـ Redirect الاستفادة منها.

إعادة توجيه الصفحة الأساسية

لإعادة توجيه إحدى الصفحات إلى عنوان URL آخر ، يكون الرمز هو:

إعادة توجيه 301 /relative-url.html http://example.com/full-url.html

يتكون هذا الأمر من سطر واحد من أربعة أجزاء ، كل منها مفصول بمسافة واحدة:

  • أمر إعادة التوجيه
  • نوع إعادة التوجيه (301 – تم نقله نهائيًا)
  • عنوان URL النسبي للصفحة الأصلية
  • عنوان URL الكامل والكامل للصفحة الجديدة.

يرتبط عنوان URL النسبي بالدليل الذي يحتوي على ملف .htaccess ، والذي يكون عادةً جذر الويب ، أو جذر المجال.

لذلك إذا تم نقل http://example.com/blog.php إلى http://blog.example.com ، فسيكون الرمز:

إعادة توجيه 301 /blog.php http://blog.example.com

إعادة توجيه قسم كبير من موقع الويب الخاص بك

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

إعادة توجيه 301 / الدليل القديم http://example.com/new-directory

إعادة توجيه موقع بأكمله

ماذا لو انتقل موقعك بالكامل إلى عنوان URL جديد؟ سهل.

إعادة توجيه 301 / http://newurl.com

إعادة توجيه www إلى غير www

بشكل متزايد ، تبتعد مواقع الويب عن النطاق الفرعي www.

لم يكن الأمر ضروريًا أبدًا ، ولكن كان ذلك توقفًا عن الأيام التي كان معظم الأشخاص الذين يديرون موقعًا على الويب يستخدمون خادمًا لتخزين الكثير من مستنداتهم الخاصة ، وتم استخدام دليل www أو “شبكة الويب العالمية” للمحتوى الذي يريدون شارك مع الآخرين.

في هذه الأيام ، بعض الناس يستخدمونها ، والبعض الآخر لا. لسوء الحظ ، لا يزال بعض المستخدمين يكتبون www تلقائيًا. أمام كل عنوان URL بدافع العادة. إذا كنت لا تستخدم www ، فأنت تريد التأكد من وصول هذه الطلبات إلى المكان الصحيح.

للقيام بذلك ، ستحتاج إلى استخدام وحدة mod_rewrite ، التي ربما تكون مثبتة بالفعل على مضيف الويب الخاص بك.

خيارات + FollowSymlinks
إعادة كتابة المحرك
RewriteCond٪ ^ www.example.com [NC]
RewriteRule ^ (. *) $ http://example.org/$1 [R = 301، NC]

كن حذرا!

تقدم الكثير من أدلة htaccess و mod_rewrite الأخرى بعض الاختلاف في التعليمات البرمجية التالية لإنجاز ذلك:

خيارات + FollowSymlinks
إعادة كتابة المحرك
RewriteCond٪! ^ example.com [NC]
RewriteRule ^ (. *) $ http://example.org/$1 [R = 301، NC]

هل ترى المشكلة في ذلك?

يقوم بإعادة توجيه كافة المجالات الفرعية إلى المجال الأساسي. لذلك ليس فقط www.example.com ، ولكن أيضًا blog.example.com و admin.example.com وأي شيء آخر. ربما هذا ليس السلوك الذي تريده.

إعادة التوجيه إلى www

ولكن ماذا لو كنت تستخدم النطاق الفرعي www?

ربما يجب عليك إعداد إعادة توجيه للتأكد من وصول الأشخاص إلى المكان الذي يحاولون الذهاب إليه. خاصة الآن ، من المحتمل أن يقوم عدد أقل من الأشخاص تلقائيًا بإضافة ذلك www إلى بداية عناوين URL.

أنت فقط عكس الرمز أعلاه.

إعادة كتابة المحرك
RewriteCond٪ ^ example.com [NC]
RewriteRule ^ (. *) http://www.website.com/$1 [R = 301، NC]

هل يجب علي إعادة توجيه أخطاء 404 إلى الصفحة الرئيسية?

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

هذا مثال جيد على أنه لمجرد أنه يمكنك القيام بشيء ما ، فهذا لا يعني أنه يجب عليك القيام بشيء ما.

إن إعادة توجيه أخطاء 404 إلى الصفحة الرئيسية للموقع فكرة رهيبة. إنه يربك الزوار ، الذين لا يمكنهم معرفة سبب رؤيتهم للصفحة الأولى للموقع بدلاً من صفحة الخطأ 404 المناسبة.

يجب أن تحتوي جميع مواقع الويب على صفحة 404 مخصصة تشرح للمستخدم بوضوح أنه لا يمكن العثور على المحتوى ، وتوفر بشكل مثالي بعض ميزات البحث لمساعدة المستخدم في العثور على ما يبحثون عنه.

لماذا استخدام .htaccess بدلاً من البدائل?

يمكنك إعداد إعادة التوجيه في ملفات PHP ، أو مع أي نوع آخر من البرمجة النصية من جانب الخادم. يمكنك أيضًا إعدادها في نظام إدارة المحتوى الخاص بك (وهو نفس الشيء في الأساس).

ولكن استخدام .htaccess هو عادةً أسرع أنواع إعادة التوجيه. باستخدام عمليات إعادة التوجيه المستندة إلى PHP أو لغات البرمجة النصية الأخرى من جانب الخادم ، يجب إكمال الطلب بالكامل وتفسير النص البرمجي بالفعل قبل إرسال رسالة إعادة التوجيه إلى المتصفح.

باستخدام عمليات إعادة توجيه .htaccess ، يستجيب الخادم مباشرة للطلب برسالة إعادة التوجيه. هذا أسرع بكثير.

ومع ذلك ، يجب ملاحظة أن بعض أنظمة إدارة المحتوى تدير بالفعل عمليات إعادة التوجيه من خلال تحديث .htaccess برمجياً. يحتوي WordPress ، على سبيل المثال ، على مكونات إضافية لإعادة التوجيه تعمل بهذه الطريقة. (ونظام URL الجميل لـ WP يقوم بذلك أيضًا.)

يمنحك هذا أداء استخدام htaccess مباشرة ، بينما يمنحك أيضًا راحة الإدارة من داخل تطبيقك.

إخفاء ملف .htaccess الخاص بك: اعتبارات الأمان

لا يوجد سبب يجعل شخص ما قادرًا على عرض ملف htaccess الخاص بك من الويب.

علاوة على ذلك ، هناك بعض الأسباب الكبيرة التي تجعلك بالتأكيد لا تريد أن يرى الناس ملف htaccess الخاص بك.

المشكلة الأكبر هي أنه إذا كنت تستخدم ملف .htpasswd ، يتم توضيح موقعه في ملف .htaccess. معرفة مكان العثور عليه يسهل العثور عليه.

علاوة على ذلك ، كقاعدة عامة ، لا تريد تزويد الجمهور بتفاصيل حول التنفيذ.

إعادة كتابة القواعد وإعدادات الدليل والأمان – كل الأشياء التي تستخدمها. كلما استطاع المخترق التعرف على نظامك ، كان من السهل اختراقه.

من السهل جدًا إخفاء ملف htaccess الخاص بك من العرض العام. فقط أضف الكود التالي:

يسمح النظام ، ينكر
رفض من الجميع

تمكين أنواع MIME

أنواع MIME هي أنواع الملفات. يطلق عليها أنواع MIME بسبب ارتباطها الأصلي بالبريد الإلكتروني (يشير MIME إلى “ملحقات بريد الإنترنت متعدد الأغراض”). لا تُسمى فقط “أنواع الملفات” لأن MIME يتضمن تنسيقًا محددًا لتحديد نوع الملف.

إذا سبق لك أن قمت بتأليف مستند HTML ، فمن المحتمل أنك حددت نوع MIME ، حتى إذا لم تكن تعرفه:

تشير سمة النوع إلى نوع MIME محدد.

أنواع MIME على الخادم الخاص بك

في بعض الأحيان ستجد أن خادم الويب الخاص بك غير مهيأ لتقديم نوع معين من الملفات. لا يعمل – طلبات الملف تفشل ببساطة.

في معظم الحالات ، يمكنك إصلاح هذه المشكلة عن طريق إضافة نوع MIME إلى ملف htaccess.

نص AddType / richtext rtx

يتكون هذا التوجيه من ثلاثة أجزاء ، كل منها مفصول بمسافة:

  • فاصلة AddType
  • نوع MIME
  • ملحق الملف.

إذا كنت ترغب في ربط العديد من امتدادات الملفات المختلفة بنوع MIME نفسه ، فيمكنك القيام بذلك على سطر واحد.

AddType image / jpeg jpeg jpg jpe JPG

فرض التحميل حسب نوع MIME

إذا كنت تريد تشغيل جميع الروابط إلى أنواع ملفات معينة كتنزيلات ، فبدلاً من فتحها في المستعرض ، يمكنك القيام بذلك باستخدام تطبيق نوع MIME / دفق ثماني ، مثل هذا:

تطبيق AddType / تيار ثماني بتدفق pdf

مرة أخرى ، يمكنك تحديد امتدادات ملفات متعددة بنوع واحد:

تطبيق AddType / بث ثماني بتدفق pdf doc docx rtf

قائمة امتدادات الملفات وأنواع MIME

فيما يلي قائمة غير كاملة من تنسيقات الملفات وأنواع MIME المرتبطة بها.

إذا كنت تدير موقع الويب الخاص بك ، وتعلم أنواع الملفات التي تنشر فيها الموارد ، فلا داعي للصق هذه القائمة بالكامل في ملف htaccess..

ومع ذلك ، إذا كنت تدير موقعًا يساهم فيه العديد من الأشخاص الآخرين وينشرون المحتوى إليه ، فقد ترغب ببساطة في السماح بعدد كبير من أنواع الملفات بهذه الطريقة للتأكد من عدم وجود تجربة سيئة لأحد.

هذا هو الحال بشكل خاص إذا كنت تدير موقعًا حيث قد يشارك الأشخاص على وجه التحديد الكثير من الملفات ، على سبيل المثال موقع مشاركة الملفات ، أو تطبيق إدارة المشروع (حيث سيتم إرفاق العديد من الملفات في الغالب بالمشروع) ، أو تطبيق ويب يعالج البريد الإلكتروني.

تطبيق AddType / macbinhex-40 hqx
تطبيق AddType / netalive net
تطبيق AddType / netalivelink nel
تطبيق AddType / bin bin ثماني دفق
تطبيق AddType / oda oda
تطبيق AddType / pdf pdf
تطبيق AddType / postscript ai eps ps
تطبيق AddType / rtf rtf
تطبيق AddType / x-bcpio bcpio
تطبيق AddType / x-cpio cpio
تطبيق AddType / x-csh csh
تطبيق AddType / x-director dcr
تطبيق AddType / مدير x
تطبيق AddType / x-director dxr
تطبيق AddType / x-dvi dvi
تطبيق AddType / x-gtar gtar
تطبيق AddType / x-hdf hdf
تطبيق AddType / x-httpd-cgi cgi
تطبيق AddType / اللاتكس
تطبيق AddType / x-mif mif
تطبيق AddType / x-netcdf nc cdf
تطبيق AddType / x-onlive sds
تطبيق AddType / x-sh sh
تطبيق AddType / x-shar shar
تطبيق AddType / x-sv4cpio sv4cpio
تطبيق AddType / x-sv4crc sv4crc
تطبيق AddType / x-tar tar
تطبيق AddType / x-tcl tcl
تطبيق AddType / x-tex tex
تطبيق AddType / x-texinfo texinfo texi
تطبيق AddType / x-troff t tr roff
تطبيق AddType / رجل x-troff
تطبيق AddType / x-troff-me me
تطبيق AddType / x-troff-ms ms
تطبيق AddType / x-ustar ustar
تطبيق AddType / x-wais-source src
تطبيق AddType / zip zip
AddType الصوت / أساسي au snd
AddType audio / x-aiff aif aiff aifc
AddType audio / x-midi mid
AddType audio / x-pn-realaudio ram
AddType audio / x-wav wav
AddType image / gif gif GIF
AddType image / ief ief
AddType image / jpeg jpeg jpg jpe JPG
AddType image / tiff tiff tif
AddType image / x-cmu-raster ras
AddType image / x-portable-anymap pnm
AddType image / x-portable-bitmap pbm
AddType image / x-portable-graymap pgm
AddType image / x-portable-pixmap ppm
AddType image / x-rgb rgb
AddType image / x-xbitmap xbm
AddType image / x-xpixmap xpm
AddType image / x-xwindowdump xwd
AddType text / html html htm
نص AddType / نص عادي
نص AddType / richtext rtx
تنسيق AddType / قيم مفصولة بعلامات جدولة
AddType text / x-server-parsed-html shtml sht
AddType text / x-setext etx
AddType video / mpeg mpeg mpg mpe
AddType video / quicktime qt mov
AddType video / x-msvideo avi
AddType video / x-sgi-movie movie
AddType x-world / x-vrml wrl

منع الارتباط السريع

Hotlinking هو ممارسة الربط بالموارد من المجالات الأخرى بدلاً من تحميل المحتوى إلى خادمك الخاص وعرضه بنفسك.

لنفترض أنك وجدت صورة على موقع ويب تعجبك حقًا ، وتريد استخدامها على موقعك. تجاهل مشكلات حقوق الطبع والنشر في الوقت الحالي – يمكنك تنزيل الصورة وتحميلها على موقع الويب الخاص بك وتضمينها على صفحتك مثل الوضع العادي.


ولكن إذا كنت كسولًا ، أو تحاول حفظ النطاق الترددي ، أو لا تعرف كيفية تحميل ملف ، يمكنك فقط تضمينه مباشرة من الملف الأصلي.

هذا رابط ساخن. يحدث ذلك أيضًا مع ملفات CSS و JS ، ولكن الصور هي الأكثر شيوعًا.

لا تمانع بعض مواقع الويب / المضيفين على الإطلاق إذا فعلت ذلك – يمكنك ربط صور hotlink من ويكيبيديا دون أن يشعر أي شخص بالضيق. وتشجعه بعض مواقع الويب بشكل أو بآخر.

على سبيل المثال ، توفر JQuery مكتبات JS الخاصة بها عبر CDN (شبكة توصيل المحتوى) ، بحيث يمكنك الارتباط بها مباشرة دون الحاجة إلى تحميلها وعرضها من خادمك الخاص.

لكن العديد من مضيف الويب يعتبرون الارتباط السريع شكلاً من أشكال عرض النطاق الترددي وسرقة الموارد.

من المؤكد أنه إذا كنت تدير موقعًا صغيرًا نسبيًا ، فلا يمكنك تحمل آلاف الطلبات أو عشرات الآلاف من الطلبات كل يوم للحصول على موارد لا علاقة لها بالزوار الفعليين لموقعك.

إذا كنت تواجه مشكلة في الارتباط السريع ، فيمكنك تعطيله باستخدام بعض قواعد mod_rewrite المضافة إلى ملف htaccess..

إعادة كتابة المحرك
RewriteCond٪! ^ $
RewriteCond٪! ^ http: // (www.)؟ example.com /.*$ [NC]
RewriteRule. (gif | jpg | jpeg | png | js | css) $ – [F]

تأكد من تغيير example.com في السطر الثالث إلى اسم المجال الفعلي الخاص بك. سيؤدي هذا إلى اكتشاف أي طلبات غير واردة من نطاقك ، ثم التحقق مما إذا كانت تتطابق مع أحد امتدادات الملفات المحددة في السطر الرابع. إذا كان هناك تطابق ، يفشل الطلب.

إذا كنت ترغب في إضافة ملحقات ملفات أخرى ، يمكنك ببساطة تحرير السطر الأخير.

تقديم محتوى بديل

إذا كنت تريد أن تخبر العالم عن سبب توقف ارتباطها السريع فجأة عن العمل ، يمكنك استبدال صور الارتباط الساخن بصورة خاصة برسالة مثل “نحن نكره الربط الساخن!” أو “المحتوى الأصلي متاح على http://example.com”.

بدلاً من فشل الطلب ، ما عليك سوى إعادة توجيهه إلى الصورة “الخاصة”:

إعادة كتابة المحرك
RewriteCond٪! ^ $
RewriteCond٪! ^ http: // (www.)؟ example.com /.*$ [NC]
RewriteRule. (gif | jpg) $ http://www.example.com/no-hotlinking.jpg [R، L]

إذا كنت ترغب حقًا في العبث مع الأشخاص ، فيمكنك إعادة توجيه ملفات JavaScript أو CSS إلى بدائل خاصة قد يكون لها تأثيرات مؤسفة للرابط الساخن. هذا غير مستحسن ، ولكن.

إعادة كتابة المحرك
RewriteCond٪! ^ $
RewriteCond٪! ^ http: // (www.)؟ example.com /.*$ [NC]
RewriteRule. (js) $ http://www.example.com/break-everything.js [R ، L]

إعادة كتابة المحرك
RewriteCond٪! ^ $
RewriteCond٪! ^ http: // (www.)؟ example.com /.*$ [NC]
RewriteRule. (css) $ http://www.example.com/super-ugly.css [R ، L]

تعطيل أو تمكين الفهرس

ماذا يحدث إذا كان لديك دليل ممتلئ بالمستندات أو الموارد الأخرى ، ولا يوجد ملف index.html ، ولا توجد صفحة دليل افتراضية محددة في ملف htaccess.?

في كثير من الحالات ، ستكون النتيجة سرد دليل عام لجميع الملفات في الدليل.

هذا صحيح. إذا كان لديك مجلد في دليل الاستضافة المسمى / الصور ، وليس به صفحة index.html ، عندما ينتقل شخص ما إلى http://yousite.com/images ، فسيتمكن من رؤية قائمة بجميع الصور على موقع.

هذا هو السلوك الافتراضي لمعظم خوادم الويب ، وهو أمر منطقي من وجهة نظر المفهوم الأصلي لموقع الويب كمجرد مكان لحفظ المستندات ومشاركتها. لكن هذا ليس السلوك المطلوب لمعظم المواقع.

تعطيل الفهارس

ستقوم العديد من حسابات استضافة الويب بتعطيل هذا بالفعل كجزء من تكوينها العالمي. لكن ليس كلها تفعل ذلك.

إذا كنت بحاجة إلى تعطيل قوائم الدليل التي تم إنشاؤها تلقائيًا ، فإن القيام بذلك سهل:

خيارات – الفهارس

تمكين الفهارس

إذا قام خادم الويب بتعطيل الفهارس كجزء من التكوين العام ، ولكنك تريدها ، يمكنك تمكينها بعكس الأمر أعلاه.

خيارات + فهارس

إخفاء بعض الملفات من الفهرس

إذا كنت تريد إظهار قوائم الدليل ، ولكنك تريد إخفاء أنواع معينة من الملفات من القائمة ، فيمكنك القيام بذلك أيضًا.

الفهرس تجاهل * .gif * .jpg

* * عبارة عن مجموعة أحرف كبيرة. سيخفي التوجيه أعلاه جميع الملفات التي لها امتداد .gif أو .jpg. إذا كنت تريد أن تكون أكثر تحديدًا ، فيمكنك:

IndexIgnore secret-image.jpg

تمكين CGI في كل مكان

CGI ، أو واجهة البوابة المشتركة ، هي طريقة من جانب الخادم لتضمين البرامج النصية غير HTML (مثل Perl أو SSI) في صفحات الويب.

عادة ، يتم تخزين نصوص CGI في مجلد يسمى / cgi-bin. تم تكوين خادم الويب للتعامل مع أي مورد في هذا الدليل كنص برمجي ، وليس صفحة.

المشكلة في ذلك ذات شقين: تحتاج عناوين URL التي تشير إلى موارد CGI إلى / cgi-bin / فيها ، والتي تضع تفاصيل التنفيذ في عنوان URL الخاص بك – وهو نمط مضاد للتجنب يجب تجنبه لعدد من الأسباب.

قد يحتاج موقع الويب المعقد إلى بنية تنظيمية أفضل من مجرد وجود الكثير من النصوص البرمجية في مجلد واحد / cgi-bin.

إذا كنت تريد أن يقوم خادم الويب الخاص بك بتحليل نصوص CGI بغض النظر عن مكان وجودها في بنية الدليل ، فما عليك سوى إضافة ما يلي إلى ملف htaccess الخاص بك:

AddHandler cgi-script .cgi
خيارات + ExecCGI

إذا كانت لديك ملحقات ملفات أخرى تريد معالجتها كنصوص CGI ، يمكنك إضافتها في السطر الأول.

البرامج النصية كرمز المصدر

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

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

قد يكون هذا هو الحال إذا قمت بتشغيل خدمة مشاركة الملفات أو موقع مستودع الرموز ، وتريد أن يرى الناس شفرة المصدر وأن يكونوا قادرين على تنزيلها ، لكن النصوص البرمجية هي في الواقع جزء من وظائف موقعك.

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

RemoveHandler cgi-script .pl .cgi .php .py
AddType text / plain .pl .cgi .php .py

بدلاً من ذلك ، كما ذكرنا سابقًا ، يمكنك فرض تحميل الملفات ذات هذه الامتدادات تلقائيًا ، بدلاً من عرضها.

RemoveHandler cgi-script .pl .cgi .php .py
تطبيق AddType / تيار ثماني بتات. pl .cgi .php .py

كن حذرا مع أي من هؤلاء ، على الرغم. إذا كنت تريد عرض بعض الملفات بهذه الطريقة فقط ، ولكنك لا تزال تستخدم هذه النصوص البرمجية لبقية موقعك على الويب ، فستواجه وقتًا سيئًا إذا وضعت هذا التوجيه في ملف htaccess لجذر الويب الخاص بك.

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

تكوين إعدادات PHP

في بعض الأحيان تحتاج إلى تعديل إعدادات PHP. الطريقة الصحيحة للقيام بذلك هي في ملف يسمى php.ini.

لسوء الحظ ، لا تسمح جميع شركات استضافة الويب لعملائها بتحرير ملف php.ini. وينطبق هذا بشكل خاص على موفري الاستضافة المشتركة ، حيث قد يعمل تثبيت واحد لـ PHP على تشغيل مئات من مواقع الويب.

لحسن الحظ ، هناك حل بديل – يمكنك تضمين قواعد php.ini في ملف htaccess.

تبدو الصيغة كما يلي:

php_value [اسم الإعداد] [القيمة]

لذلك ، على سبيل المثال ، إذا كنت بحاجة إلى زيادة الحجم الأقصى لتحميل الملف (مشكلة شائعة) ، فهذا سهل:

php_value upload_max_filesize 10M

لا يمكن تحديد جميع إعدادات PHP في ملفات htaccess. على سبيل المثال لا يمكنك تعطيل _classes بهذه الطريقة.

للحصول على قائمة كاملة بجميع إعدادات php.ini ، راجع دليل توجيهات php.ini الرسمية.

كيفية منع الوصول إلى PHP الخاص بك تشمل الملفات

هناك عدة طرق لمنع الوصول غير المصرح به إلى PHP الخاص بك يتضمن الملفات.

أولاً ، يمكنك وضعها في دليل وتعيين ملف htaccess الخاص بك لرفض أي وصول إلى هذا الدليل (على سبيل المثال ، رفض من الجميع إذا كنت تستخدم خادم Apache HTTP). إذا حاول شخص ما الوصول إلى الملف ، فسوف يتلقى HTTP 403 ممنوع استجابة.

بدلاً من ذلك ، يمكنك تخزين هذه الملفات خارج الدليل الذي يتم من خلاله تقديم ملفات موقع الويب الخاص بك. أي إذا كان خادم الويب الخاص بك يخدم الملفات الموجودة في / srv / home, يمكنك وضع ملفات التضمين الخاصة بك تحت / srv / home / يشمل. وهذا يجعل الملفات غير قابلة للوصول عبر عناوين URL ، على الرغم من أنه يمكنك الوصول إليها واستخدامها على النحو التالي: تضمين “PATH_TO_YOUR_FILE”

أخيرًا ، يمكنك تحديد ثابت عنوان URL للملفات التي تريد الوصول إليها:

تعريف (“WEBSITE_URL” ، “http://example.com”) ؛

بعد ذلك ، بالنسبة للملفات التي لا تريد الوصول إليها ، قم بتضمين الاختيار التالي:

if (! المعرفة (‘WEBSITE_URL’)) {
العنوان ($ _ SERVER ["SERVER_PROTOCOL"] . "403 ممنوع") ؛
خروج؛
}}

كيفية منع الوصول إلى ملفات ini PHP الخاصة بك

طريقة منع الوصول غير المصرح به إلى ملفات ini الخاصة بك هو تحرير ملف htaccess الخاص بك لرفض الوصول إلى ملفات ini (على سبيل المثال ، رفض من الجميع إذا كنت تستخدم Apache).

كيفية تعيين المنطقة الزمنية لخادمك

يمكنك تعيين المنطقة الزمنية لخادمك عن طريق تحديدها في ملف htaccess. للقيام بذلك ، ستحتاج إلى إضافة السطر التالي:

php_value date.timezone “المنطقة / المنطقة”

تأكد من استبدال المنطقة / المنطقة بالمنطقة الزمنية التي تفضلها.

احفظ ملفك. يمكنك اختبار التغييرات الخاصة بك عن طريق إنشاء ملف اختبار PHP يحتوي على ما يلي في نفس الدليل كملف htaccess:

<?php phpinfo () ؛ ?>

قم بتحميل الملف في المستعرض الخاص بك ، وابحث عن اسم التوجيه – يجب أن يعرض عمود “القيمة المحلية” إعداد المنطقة الزمنية الجديد الخاص بك.

عندما لا تستخدم. htaccess

تحرير ملف htaccess الخاص بك لأول مرة يمكن أن يمنحك شعورًا مفاجئًا بالقوة الهائلة على بيئة استضافة الويب الخاصة بك. تشعر فجأة بأنك مسؤول النظام.

لسوء الحظ ، يمكن أن تذهب هذه القوة إلى رأسك ، وقد تجد نفسك تستخدم ملف htaccess بطرق ليست الأفضل حقًا.

عندما تحتاج إلى القيام بشيء يبدو وكأنه نوع من وظيفة htaccess ، فهناك حالتان أساسيتان حيث يجب عليك وضع هذا التوجيه في مكان آخر.

مزيد من المنبع

كلما كان ذلك ممكنًا ، من الأفضل وضع أنواع التوجيهات التي يمكنك وضعها في ملف .htaccess في ملف httpd.conf ، وهو ملف إعدادات التكوين للخادم بالكامل.

وبالمثل ، تنتمي إعدادات PHP بشكل أكثر ملاءمة إلى ملف php.ini ، ومعظم اللغات الأخرى لها ملفات إعدادات تكوين مماثلة.

يسمح وضع التوجيهات في اتجاه أعلى ، في ملف httpd.conf أو php.ini أو أي ملف تهيئة خاص بلغة أخرى ، بأن تكون هذه الإعدادات “مخبوزة” في محرك تحليل خادم الويب. باستخدام htaccess ، يجب فحص التوجيهات وتفسيرها مع كل طلب.

إذا كان لديك موقع منخفض عدد الزيارات يحتوي على عدد قليل من أوامر .htaccess ، فهذا ليس بالأمر الكبير. ولكن إذا كان لديك الكثير من الحركة ، والكثير من التوجيهات ، يمكن أن يتأخر تأخر الأداء.

لسوء الحظ ، لا يسمح العديد من موفري الاستضافة المشتركة للعملاء بالوصول إلى ملفات httpd.conf أو php.ini ، مما يجبر المستخدمين على الاعتماد على ملف htaccess أبطأ..

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

مزيد من المصب

إذا كنت تستخدم نظام إدارة محتوى جيدًا (CMS) مثل WordPress أو Drupal ، فإن بعض الأشياء التي قد تفعلها في ملف htaccess – مثل إعادة توجيه عناوين URL أو حظر عناوين IP – يمكن القيام بها من داخل التطبيق.

غالبًا ما يعمل هذا جنبًا إلى جنب مع ملف .htaccess ، مع إضافة أوامر برمجية للتطبيق.

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

استكشاف الأخطاء وإصلاحها

يمكن أن يكون العبث بالملف .htaccess أمرًا رائعًا – ولكنه يمكن أيضًا أن يتسبب في توقف الخادم عن العمل وبدء تسليم 500 رسالة خطأ داخلية في الخادم.

إليك بعض الأفكار لمساعدتك في ذلك.

تفعل شيئا واحدا في وقت واحد

يجب أن يكون هذا بدون قول ، ولكن – للأسف – إنه درس يجب على الكثير منا تعلمه مرارًا وتكرارًا.

تفعل شيئا واحدا. ثم اختبره. ثم افعل شيئًا آخر. اختبر ذلك.

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

النسخ الاحتياطي للملف الخاص بك قبل كل إجراء

إلى جانب القيام بشيء واحد فقط في كل مرة ، يجب عليك حفظ ملفك بين كل شيء تحاول. يجب أن يكون أرشيفك المحفوظ قابلاً للاستعادة. هذا ليس Microsoft Word حيث يمكنك فقط التراجع – تحتاج إلى نسخة محفوظة من ملفك.

يجب أن يكون لديك دائمًا أحدث إصدار للعمل متاحًا في حالة فوضى شيء ما. دائما ، دائما ، لديها القدرة على استعادة نسخة عمل.

هذا أسهل إذا كنت نوعًا من نظام إدارة المصدر مثل git. يمكنك الالتزام بعد كل تغيير ، والتراجع إذا واجهت أي مشاكل.

تحقق من سجلات الخطأ

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

استخدم منتديات المطورين للحصول على المساعدة

منتديات المطورين وس&مواقع مثل StackOverflow هي أدوات لا تقدر بثمن حتى للمطورين الأكثر خبرة و sysadmins. ولا تنس Google. غالبًا ما يكون الفرق بين سيد الويب السيئ والرائع هو عدم معرفة الإجابة ، ومعرفة مكان العثور على الإجابة.

مشاكل .htaccess الشائعة

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

معظم المشاكل ، والتي هي محبطة حقًا ، هي تلك الموجودة في المنتصف – المشاكل اليومية البسيطة التي يسهل حلها إذا كنت تعرفها للتو.

إليك بعض من هؤلاء.

اسم ملف غير صالح

هناك طريقة واحدة للتهجئة .htaccess – يجب أن تبدأ بالنقطة ، ويجب أن تكون بأحرف صغيرة.

يبدو غبيًا ، ولكن إذا كان ملف htaccess لا يفعل ما تتوقعه ، فيجب أن يكون هذا هو أول شيء تتحقق منه.

.htaccess معطل أو معطل جزئياً

يقوم بعض موفري الاستضافة المشتركة بتعطيل htaccess تمامًا. يسمح البعض الآخر بذلك ، ولكن يتم تقييد استخدام بعض التوجيهات – يتم تجاهلها فقط إذا تم تضمينها.

وبالمثل ، حتى في خطط VPS أو الخوادم المخصصة الخاصة بك ، قد يتم تعطيل htaccess.

إذا كان لديك حق الوصول إلى ملف httpd.conf أو إعدادات الخادم الأخرى ، يمكنك التحقق من ذلك بنفسك. إذا وجدت التوجيه AllowOverride None ، فقد وجدت الجاني. استبدلها بـ AllowOverride All.

إذا لم يكن لديك حق الوصول إلى ملف httpd.conf الخاص بك (لأنك تستخدم الاستضافة المشتركة ، على سبيل المثال) ، فقد تحتاج إلى الاتصال بالدعم الفني لشركة الاستضافة ومعرفة ما إذا كان يمكنهم تمكينه لك ، أو تقديم اقتراحات لك على تحقيق ما تحاول القيام به بطريقة مختلفة.

توجيهات متضاربة أو متجاوزة

إذا كانت لديك عدة أدلة متداخلة ، فمن الممكن أن يكون لكل منها ملف htaccess خاص به. ينطبق كل ملف .htaccess من الجذر ، من خلال كل دليل متداخل – يتم قراءتها بالترتيب ، تنازليًا في شجرة الدليل.

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

انظر أيضًا ورقة الغش mod-Rewrite!

.الأسئلة الشائعة

  • ما هو ملف .htaccess في تحسين محركات البحث?

    يمكن استخدام ملف htaccess. لتنفيذ المهام المتعلقة بتحسين محركات البحث مثل عمليات إعادة التوجيه. يمكن استخدام عمليات إعادة التوجيه لتجنب رسائل الخطأ 404 ولجعل برامج زحف محرك البحث تعرف الصفحات التي يجب فهرستها. يمكنك أيضًا تعيين رؤوس HTTP لتحسين سرعات تحميل الصفحة ، مما قد يعزز تصنيف محرك البحث.

    بالإضافة إلى ذلك ، يمكنك استخدام .htaccess لتفعيل سياسة مائلة متسقة. يمكن أن يساعدك هذا ، جنبًا إلى جنب مع قواعد www و HTTPS ، في تجنب المحتوى المكرر ، والذي يمكن أن يعاقبه جوجل.

  • كيف أنشئ ملف htaccess في WordPress?

    لإنشاء ملف htaccess في WordPress ، استخدم هذا الرمز:

    # BEGIN WordPress

    إعادة كتابة المحرك
    إعادة كتابة /
    فهرس RewriteRule ^ \ .php $ – [L]
    RewriteCond٪ {REQUEST_FILENAME}! -f
    RewriteCond٪ {REQUEST_FILENAME}! -د
    إعادة كتابة القاعدة. /index.php [L]

    # نهاية وورد

    لاحظ أنه عند تثبيت WordPress ، يتم إنشاء ملف htaccess تلقائيًا. ومع ذلك ، يمكن أن يتلف المكون الإضافي الخاطئ ملف htaccess ، مما يؤدي إلى الحاجة إلى إعادة إنشاء الملف.

  • لماذا لا يمكنني رؤية ملف htaccess الخاص بي?

    إذا لم تتمكن من رؤية ملف htaccess الخاص بك ، فذلك لأنه غير موجود أو أنه مخفي. لإجبار عميل FTP على عرض هذه الملفات ، ستحتاج إلى تغيير إعدادات العميل (على سبيل المثال ، في FileZilla ، انتقل إلى الخادم > فرض عرض الملفات المخفية). إذا أجريت هذا التغيير وما زلت لا ترى htaccess ، فستحتاج إلى إعادة إنشائه.

  • كم عدد ملفات .htaccess التي يجب أن أحصل عليها?

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

  • أين. htaccess في لوحة التحكم?

    لمشاهدة ملف htaccess ، قم بتسجيل الدخول إلى حساب cPanel الخاص بك. ثم اذهب الى الملفات > مدير الملفات. عندما يطلب منك اختيار الدليل ، حدد جذر الويب وتأكد من ذلك أظهر الملفات المخفية مفحوص. يجب أن تكون قادرًا الآن على عرض ملف htaccess الخاص بك في cPanel.

  • ما هو استخدام ملف .htaccess في CodeIgniter?

    يمكن استخدام ملف .htaccess مع CodeIgniter لإنشاء عناوين URL مناسبة لمحرك البحث. بشكل افتراضي ، تتضمن عناوين URL CodeIgniter ملف index.php. باستخدام htaccess ، يمكنك حذف ملف index.php الافتراضي بحيث لا يظهر في جميع عناوين URL الخاصة بتطبيقك.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map