كيفية إزالة. htaccess حماية كلمة المرور من الدليل الفرعي

StackOverflow https://stackoverflow.com/questions/1431378

سؤال

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

كيف يمكنني تعطيل حماية كلمة مرور HTACCESS لدليل فرعي؟ على وجه التحديد ما هو .htaccess بناء الجملة.

هنا أنا .htaccess ملف يتم وضعه في جذر FTP الخاص بي.

AuthName "Site Administratrion"
AuthUserFile /dir/.htpasswd
AuthGroupFile /dev/null

AuthName secure
AuthType Basic
require user username1
order allow,deny
allow from all
هل كانت مفيدة؟

المحلول

تحتاج إلى إنشاء جديد .htaccess ملف في الدليل المطلوب وتضمين Satisfy any التوجيه فيه مثل ذلك ، حتى تصل إلى Apache 2.3:

# allows any user to see this directory
Satisfy Any

تم تغيير بناء الجملة في Apache 2.4 ، وهذا له نفس التأثير:

Require all granted

نصائح أخرى

إضافة إلى إجابة Ragez ، استخدمت هذا في توجيهات الخادم:

<Directory /var/www/protected/>
     AuthType Basic
     AuthName "Production"
     AuthUserFile /path/to/.htpasswd
     Require valid-user
</Directory>

<Directory /var/www/protected/unprotected>
     Satisfy Any
</Directory>

رائع. شكرا Ragez!

ببساطة إنشاء جديد .htaccess في الدليل الفرعي المطلوب مع هذا التوجيه:

Allow from all

يمكنك تقييد IP الخاص بك فقط بـ:

Allow from x.x.x.x

نرى : http://httpd.apache.org/docs/current/mod/mod_access_compat.html

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

فيما يلي طريقة للسماح للدليل الفرعي "FOO" من خلال المصادقة الأساسية من ملف .htaccess الرئيسي على موقع:

AuthType Basic
AuthName "Password Required"
AuthUserFile /dir/.htpasswd
Require expr %{REQUEST_URI} =~ m#^/foo/#
Require valid-user

ملاحظة: هذا يعمل في Apache 2.4. لم أكن أكد للإصدارات السابقة.

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

AuthType Basic AuthName "Enter Pass" AuthUserFile /home/public_html/.htpasswd /*PATH TO YOUR .htpasswd FILE*/ Require valid-user SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow Order allow,deny Allow from env=allow

أيضًا إذا كنت ترغب في منع دلائل متعددة ثم أضف

SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow

في كثير من الوقت العديد من الدلائل ، تريد إزالة من الوقاية من HTACCESS.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top