- มีวิธีแทนที่: AuthUserFile ด้วยรหัสผ่านเอง? ฉันได้สร้างไว้ล่วงหน้าในสคริปต์ PHP ของฉันแล้ว
- หรือฉันจะอ้างอิงไฟล์ .htpasswd ในไดเร็กทอรีเดียวกันได้อย่างไร การดำเนินการต่อไปนี้ไม่ได้ผล: AuthUserFile './htpasswd'
คุณไม่สามารถทำทั้งสองอย่างได้ AuthUserFile
(เช่น การพิสูจน์ตัวตน HTTP) ต้องการพาธไฟล์แบบสัมบูรณ์ (หรือพาธสัมพัทธ์ไปยังไฟล์ ServerRoot
) และ การแสดงออกของอาปาเช่ ไม่รองรับไวยากรณ์เพื่อสร้าง AFAIK "ไดนามิก" นี้ (เช่นเดียวกับคำสั่งอื่น ๆ ใน Apache 2.4 เช่น เอกสารข้อผิดพลาด
).
อย่างไรก็ตาม เนื่องจากคุณกำลังสร้างไดเร็กทอรี คุณจึงน่าจะสร้างไดเร็กทอรีได้ .htaccess
(?) ไฟล์และไฟล์ที่เกี่ยวข้อง .htpasswd
ไฟล์สำหรับแต่ละไดเรกทอรี? อย่างไรก็ตาม, .htpasswd
ไฟล์ควร ไม่เคย ถูกจัดเก็บไว้ในไดเร็กทอรีที่พวกเขาปกป้อง หรือแม้แต่ในพื้นที่ HTML สาธารณะ ควรเก็บไว้นอกแผนผังไดเร็กทอรีสาธารณะเหนือรูทเอกสาร (และเดิมทีคุณต้องการหลีกเลี่ยงหลายรายการ .htaccess
ไฟล์แม้ว่าจะมีไฟล์ คำแนะนำ ผมไม่แน่ใจ?)
อีกทางเลือกหนึ่ง เนื่องจากคุณใช้ PHP ในการสร้างไดเร็กทอรีเหล่านี้อยู่แล้ว และสคริปต์ PHP ของคุณรู้รหัสผ่านที่เกี่ยวข้องอยู่แล้ว เหตุใดจึงไม่ใช้ PHP เพื่อจัดการการเข้าถึงไฟล์ CSV
ตัวอย่างเช่น:
ใช้ Apache mod_rewrite เพื่อเขียนคำขอใหม่ภายในสำหรับ "ป้องกัน" ใด ๆ .csv
ไฟล์ไปยังสคริปต์ PHP ตัวอย่างเช่น:
RewriteEngine เปิดอยู่
# คำขอทั้งหมดสำหรับไฟล์ ".csv" ในแผนผัง dir "/foo/" จะถูกส่งไปยัง "/serve-csv.php"
RewriteRule ^/?foo/.+\.csv$ /serve-csv.php [L]
สคริปต์ PHP รู้ว่าไฟล์ถูกร้องขอ (เช่น $_SERVER['REQUEST_URI']
) และผู้ใช้/รหัสผ่านที่ได้รับอนุญาตให้เข้าถึงไฟล์นี้
PHP สามารถจัดการ HTTP Basic Authentication (นั้น ดูเหมือนว่าคุณกำลังใช้อยู่) หรือใช้อินเทอร์เฟซการรับรองความถูกต้องของคุณเอง (แบบฟอร์ม HTML เป็นต้น)
หากผู้ใช้ได้รับการรับรองความถูกต้องแล้ว PHP จะอ่านไฟล์ที่ร้องขอและให้บริการแก่ลูกค้า