# ไม่รวมโฟลเดอร์มีเดียจากการรับรองความถูกต้องพื้นฐาน
สื่อ SetEnvIf Request_URI "^/media/*"
คำสั่งอนุญาตปฏิเสธ
ต้องการผู้ใช้ที่ถูกต้อง
อนุญาตจาก env=media
ปฏิเสธจาก env=!media
พอใจใด ๆ
สิ่งนี้จะใช้งานได้ ยกเว้น regex ผิดใน ตั้งค่าEnvIf
คำสั่ง ดังนั้น env var สื่อ
ไม่ได้ตั้งค่าเมื่อมีการร้องขอ /media/someimage.jpg
. คุณขาดจุดก่อนหน้า *
ปริมาณเช่น ^/สื่อ/.*
. อย่างไรก็ตาม คุณสามารถลบส่วนท้ายออกได้ *
ทั้งสิ้น กล่าวคือ ^/สื่อ/
ซึ่งมีประสิทธิภาพเหมือนกัน (และมีประสิทธิภาพมากขึ้น)
เดอะ ปฏิเสธจาก env=!media
คำสั่งนั้นไม่จำเป็น
ดังนั้นสิ่งต่อไปนี้ควรใช้งานได้:
# ไม่รวมโฟลเดอร์มีเดียจากการรับรองความถูกต้องพื้นฐาน
สื่อ SetEnvIf Request_URI "^/media/"
ต้องการผู้ใช้ที่ถูกต้อง
คำสั่งอนุญาตปฏิเสธ
อนุญาตจาก env=media
ตอบสนองใด ๆ
อย่างไรก็ตาม นี่เป็นการใช้คำสั่ง Apache 2.2 ที่เลิกใช้แล้ว ใน Apache 2.4 คุณสามารถทำสิ่งต่อไปนี้แทน:
# ไม่รวมโฟลเดอร์มีเดียจากการรับรองความถูกต้องพื้นฐาน
สื่อ SetEnvIf Request_URI "^/media/"
ต้องการผู้ใช้ที่ถูกต้อง
ต้องการสื่อ env
เดอะ ค่าเริ่มต้น คอนเทนเนอร์คือ <RequireAny>
- ดังนั้นคุณไม่จำเป็นต้องรวมสิ่งนี้ แม้ว่าคุณสามารถระบุได้หากต้องการ:
<RequireAny>
Require valid-user
Require env media
</RequireAny>
หรือคุณสามารถล้อมรอบบล็อกการให้สิทธิ์ทั้งหมดในไฟล์ <If>
การแสดงออก. ตัวอย่างเช่น:
# รหัสผ่านป้องกันทุกอย่างยกเว้นไดเร็กทอรีย่อย "/media/"
<ถ้า "%{REQUEST_URI} !~ m#^/media/#">
AuthType พื้นฐาน
AuthName "ป้องกัน"
AuthUserFile "/var/www/company/.htpasswd"
ต้องการผู้ใช้ที่ถูกต้อง
</หาก>
ผู้ดำเนินการ !~
เป็นการจับคู่นิพจน์ทั่วไปที่เป็นค่าลบ