ฉันต้องทำการผ่าตัดสักหน่อย
ก่อนอื่นฉันจะเรียกใช้บน Debian, apache2 (ซึ่ง 'รัน' ในฐานะผู้ใช้ www-data)
ดังนั้นฉันมีไฟล์ข้อความธรรมดาที่มี. txt ot .ini หรือส่วนขยายใด ๆ ก็ตามไม่สำคัญ
ไฟล์เหล่านี้อยู่ในโฟลเดอร์ย่อยที่มีโครงสร้างดังนี้:
www.example.com/folder1/car/foobar.txt www.example.com/folder1/cycle/foobar.txt www.example.com/folder1/fish/foobar.txt www.example.com/folder1/fruit/foobar .txt
ดังนั้นชื่อไฟล์จะเหมือนกันเสมอเหมือนกันสำหรับ 'ลำดับชั้น' เพียงแค่เปลี่ยนชื่อโฟลเดอร์: /folder-name-static/folder-name-dinamyc/file-name-static.txt
สิ่งที่ฉันควรทำคือ (ฉันคิดว่า) ค่อนข้างง่าย: ฉันจะต้องสามารถอ่านไฟล์โดยโปรแกรมบนเซิร์ฟเวอร์ (python, php เป็นต้น) แต่ถ้าฉันพยายามดึงเนื้อหาไฟล์โดย broswer (ขุด url www example.com/folder1/car/foobar.txt หรือผ่าน cUrl ฯลฯ .. ) ฉันต้องได้รับข้อผิดพลาดต้องห้ามหรืออะไรก็ตาม แต่ไม่สามารถเข้าถึงไฟล์ได้
มันจะเป็นการดีที่แม้แต่การเข้าถึงไฟล์เหล่านั้นผ่านทาง FTP นั้น 'ซ่อนไว้' หรือไม่สามารถดาวน์โหลดได้ (อย่างน้อยฉันก็ใช้กับ ftp root และข้อมูลผู้ใช้)
ฉันจะทำอย่างไร
ฉันพบสิ่งนี้ทางออนไลน์อยู่ในไฟล์. htaccess:
<Files File.txt>
Order allow, deny
Deny from all
</ Files>
ดูเหมือนว่าจะทำงานได้ แต่เฉพาะในกรณีที่ไฟล์อยู่ในเว็บรูท (www.example.com / myfile.txt) และไม่ใช่ในโฟลเดอร์ย่อย ยิ่งไปกว่านั้นโฟลเดอร์ในระดับที่สอง (www.example.com/folder1/ fruit /foobar.txt) จะถูกสร้างขึ้นแบบ dinamycally .. ฉันต้องการหลีกเลี่ยงการเปลี่ยนไฟล์. htaccess เป็นครั้งคราว
เป็นไปได้ที่จะสร้างกฎซึ่งเป็นเช่นนั้นสำหรับไฟล์ทั้งหมดที่มีชื่อที่กำหนดซึ่งอยู่ใน * www.example.com / โฟลเดอร์ชื่อคงที่ / * โฟลเดอร์ชื่อ - dinamyc / *** -static.txt * ชิ้นส่วนเหล่านั้นมีความเหมือนกันเพียงใด ** เปลี่ยนไปหรือไม่
แก้ไข :
ดังที่ Dave Drager กล่าวว่าฉันสามารถแยกเซสชั่นนี้ให้ไฟล์เหล่านั้นอยู่นอกไดเรกทอรีที่เข้าถึงได้จากเว็บ แต่ไดเรกทอรีเหล่านั้นจะมีไฟล์อื่น ๆ ภาพและสิ่งต่าง ๆ ที่ผู้ใช้ของฉันใช้ด้วยดังนั้นฉันแค่พยายามไม่มีระบบโฟลเดอร์ที่ซ้ำซ้อนเช่น:
/var/www/vhosts/example.com/httpdocs/folder1/car/[other folders and files here]
/var/www/vhosts/example.com/httpdocs/folder1/cycle/[other folders and files here]
/var/www/vhosts/example.com/httpdocs/folder1/fish/[other folders and files here]
//and, then for the 'secrets' files:
/folder1/data/car/foobar.txt
/folder1/data/cycle/foobar.txt
/folder1/data/fish/foobar.txt