الوصف: التحكم في المضيفين الذين يمكنهم الوصول إلى منطقة من الخادم بناء الجملة: السماح من الكل|المضيف|env=env-variable [host|env=env-variable] ...
السياق: الدليل، .htaccess
التغطية: الحد
الحالة: قاعدة
الوحدة النمطية: mod_access
يؤثر توجيه السماح على المضيفين الذين يمكنهم الوصول إلى منطقة من الخادم. يمكن التحكم في الوصول باستخدام خصائص طلب العميل التي تم التقاطها في أسماء المضيفين أو عناوين IP أو نطاقات عناوين IP أو متغيرات البيئة الأخرى.
المعلمة الأولى لهذا التوجيه هي دائمًا من. يمكن أن تتخذ المعلمات اللاحقة ثلاثة أشكال مختلفة. إذا تم تحديد السماح من الكل، فسيتم السماح لجميع المضيفين بالوصول، مما يتطلب تكوين توجيهات الرفض والطلب كما هو موضح أدناه. للسماح لمجموعة فرعية معينة فقط من المضيفين أو المجموعات المضيفة بالوصول إلى الخادم، يمكن تحديد المضيف بأي من التنسيقات التالية:
اسم النطاق (جزء)
مثال: السماح من apache.org
السماح بالوصول إلى المضيفين الذين تتطابق أسماؤهم مع السلسلة المحددة أو تنتهي بها. تتم مطابقة مكونات الاسم الكامل فقط، وبالتالي فإن المثال أعلاه سوف يتطابق مع foo.apache.org ولكن ليس fooapache.org. سيؤدي هذا التكوين إلى قيام الخادم بإجراء عملية بحث عكسي عن اسم المجال على عنوان IP الخاص بالعميل بغض النظر عما إذا كان توجيه HostnameLookups يقوم بتعيين عنوان IP الكامل مثال: السماح من 10.1.2.3
السماح بالوصول من عنوان IP واحد لمضيف واحد.
بعض أمثلة عناوين IP: السماح من 10.1
يتم استخدام أول 1 إلى 3 بايت من عنوان IP لقيود الشبكة الفرعية.
مثال على زوج الشبكة/القناع: السماح من 10.1.0.0/255.255.0.0
شبكة ABCD، وقناع Wxyz. لقيود الشبكة الفرعية أكثر دقة.
الشبكة/nnn لا يوجد مثال لمواصفات التوجيه داخل المنطقة: السماح من 10.1.0.0/16
مشابه للحالة السابقة، باستثناء أن القناع يتكون من بايتات عالية الترتيب nnn.
لاحظ أن الأمثلة الثلاثة الأخيرة أعلاه تتطابق تمامًا مع نفس مجموعة المضيفين.
يمكن تحديد عناوين IPv6 وشبكات IPv6 الفرعية على النحو التالي:
السماح من fe80::a00:20ff:fea7:ccea
السماح من fe80::a00:20ff:fea7:ccea/10
يسمح تنسيق المعلمة الثالثة لتوجيه السماح بالوصول إلى الخادم المحدد بامتداد متغير البيئة. عند تحديد السماح من env=env-variable، يُسمح بطلب الوصول في حالة وجود متغير البيئة env-variable. باستخدام التوجيهات المقدمة من mod_setenvif، يوفر الخادم القدرة على تعيين متغيرات البيئة بطريقة مرنة بناءً على طلبات العميل. ولذلك، يمكن استخدام هذا التوجيه للسماح بالوصول بناءً على حقول مثل وكيل المستخدم (نوع المتصفح)، أو المُحيل، أو حقول رأس طلب HTTP الأخرى.
مثال:
وكيل مستخدم SetEnvIf ^KnockKnock/2.0 Let_me_in
<الدليل /docroot>
أمر الرفض، السماح
تنفي من الجميع
السماح من env=let_me_in
الدليل>
في هذه الحالة، سيتم السماح للمتصفحات التي ترسل معرفات وكيل المستخدم بدءًا من KnockKnock/2.0 بالوصول، بينما سيتم حظر جميع المتصفحات الأخرى.
رفض وصف التعليمات: التحكم في المضيفين الممنوعين من الوصول إلى الخادم بناء الجملة: رفض من الكل|المضيف|env=env-variable [host|env=env-variable] ...
السياق: الدليل، .htaccess
التغطية: الحد
الحالة: قاعدة
الوحدة النمطية: mod_access
يسمح هذا التوجيه بتقييد الوصول إلى الخادم بناءً على اسم المضيف أو عنوان IP أو متغيرات البيئة. إعدادات المعلمة لأمر الرفض هي نفسها تمامًا لتلك الخاصة بأمر السماح.
وصف تعليمات الطلب: يتحكم في حالة الوصول الافتراضية والترتيب الذي يتم به تقييم تعليمات السماح والرفض.
بناء الجملة: ترتيب الأمر
القيمة الافتراضية: رفض الطلب، السماح
السياق: الدليل، .htaccess
التغطية: الحد
الحالة: قاعدة
الوحدة النمطية: mod_access
يتحكم توجيه الطلب في حالة الوصول الافتراضية والترتيب الذي يتم به تقييم توجيهات السماح والرفض. الطلب هو أحد الأمثلة التالية:
رفض، السماح
يتم تقييم تعليمات الرفض قبل السماح للتعليمات. كل الوصول مسموح به بشكل افتراضي. يُسمح لأي عميل لا يطابق توجيه الرفض أو يتطابق مع توجيه السماح بالوصول إلى الخادم.
السماح، الرفض
يتم تقييم توجيه السماح قبل توجيه الرفض. كل الوصول محظور بشكل افتراضي. سيتم منع أي عميل لا يطابق توجيه السماح أو يتطابق مع توجيه الرفض من الوصول إلى الخادم.
الفشل المتبادل
يُسمح فقط للمضيفين الذين يظهرون في قائمة السماح وليس في قائمة الرفض بالوصول. هذا الأمر له نفس تأثير الأمر "السماح والرفض" وتم إهماله. ما التكوين الذي يتضمنه؟
لا يمكن فصل الكلمات الرئيسية إلا بفواصل؛ ولا يمكن أن تكون هناك مسافات بينها. لاحظ أنه سيتم تقييم كل عبارة توجيه السماح والرفض في جميع الحالات.
في المثال أدناه، يُسمح بالوصول لجميع المضيفين في نطاق apache.org، بينما يتم رفض الوصول إلى أي مضيف آخر.
أمر الرفض، السماح
تنفي من الجميع
السماح من apache.org
في المثال التالي، يُسمح بالوصول لجميع المضيفين في نطاق apache.org، باستثناء المضيفين الموجودين في النطاق الفرعي foo.apache.org، الذين تم رفض وصولهم. لا يُسمح لجميع المضيفين غير الموجودين في نطاق apache.org بالوصول، لأن الحالة الافتراضية هي رفض الوصول إلى الخادم.
أمر السماح، رفض
السماح من apache.org
رفض من foo.apache.org
من ناحية أخرى، إذا تم تغيير توجيه الطلب في المثال السابق إلى رفض، السماح، فسيتم السماح بالوصول من جميع المضيفين. وذلك لأنه، بغض النظر عن الترتيب الفعلي للتوجيهات في ملف التكوين، سيتم تقييم توجيه السماح من apache.org أخيرًا واستبدال الرفض السابق من foo.apache.org. يُسمح أيضًا لجميع المضيفين غير الموجودين في نطاق apache.org بالوصول لأنه تم تغيير الحالة الافتراضية للسماح.
حتى لو لم تكن مصحوبة بتعليمات السماح والرفض، فإن وجود تعليمات الأمر سيؤثر على الوصول إلى جزء معين من الخادم، وذلك بسبب تأثيره على حالة الوصول الافتراضية. على سبيل المثال،
<الدليل /www>
أمر السماح، رفض
الدليل>
سيؤدي هذا إلى تعطيل الوصول إلى الدليل /www، حيث سيتم ضبط الحالة الافتراضية على الرفض.
يتحكم توجيه الطلب في معالجة تعليمات الوصول فقط ضمن كل جزء من تكوين الخادم. وهذا يعني أنه، على سبيل المثال، سيتم تقييم توجيه السماح أو الرفض الذي يظهر في قسم