ฉันต้องการปิดการใช้งานการสืบค้นไดเรกทอรีของโฟลเดอร์ / galerias และไดเรกทอรีย่อยทั้งหมด
ดัชนีของ / galerias / 409
* Parent Directory * i1269372986681.jpg * i1269372986682.jpg * i1269372988680.jpg
ฉันต้องการปิดการใช้งานการสืบค้นไดเรกทอรีของโฟลเดอร์ / galerias และไดเรกทอรีย่อยทั้งหมด
ดัชนีของ / galerias / 409
* Parent Directory * i1269372986681.jpg * i1269372986682.jpg * i1269372988680.jpg
คำตอบ:
สร้างไฟล์. htaccess ที่มีบรรทัดต่อไปนี้:
Options -Indexes
นั่นคือทางเลือกหนึ่ง อีกตัวเลือกหนึ่งคือการแก้ไขไฟล์กำหนดค่า apache ของคุณ
ในการทำเช่นนั้นคุณต้องเปิดมันด้วยคำสั่งก่อน:
vim /etc/httpd/conf/httpd.conf
จากนั้นค้นหาบรรทัด: ดัชนีตัวเลือก FollowSymLinks
เปลี่ยนบรรทัดนั้นเป็น: ตัวเลือก FollowSymLinks
สุดท้ายบันทึกและออกจากไฟล์และรีสตาร์ทเซิร์ฟเวอร์ apache ด้วยคำสั่งนี้:
sudo service httpd restart
(คุณมีคู่มือพร้อมภาพหน้าจอที่นี่ )
.htaccess
อาจปิดโดย โปรดตรวจสอบAllowOverride
คำสั่ง หากตั้งค่าเป็นแสดงNone
ว่า.htaccess
ถูกปิด AllowOverride All
คุณสามารถเปิดใช้งานโดยการตั้งค่า เพื่อให้แม่นยำยิ่งขึ้นAll
หมายถึงคำสั่ง Apache ทั้งหมด
วิธีที่ดีที่สุดในการทำเช่นนี้คือปิดการใช้งานด้วยเว็บเซิร์ฟเวอร์ apache2 ใน Ubuntu 14.X ของฉัน - เปิด/etc/apache2/apache2.conf
การเปลี่ยนแปลงจาก
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ถึง
<Directory /var/www/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
จากนั้นรีสตาร์ท apache โดย:
sudo service apache2 reload
นี่จะปิดการใช้งานการแสดงรายการไดเรกทอรีจากทุกโฟลเดอร์ที่ apache2 ทำหน้าที่
-Indexes
FollowSymLinks
apachectl configtest
หลังจากเพิ่มOptions -Indexes FollowSymLinks
ไปยัง httpd.conf คายข้อผิดพลาดต่อไปนี้: "ตัวเลือกทั้งหมดต้องเริ่มต้นด้วย + หรือ - หรืออาจไม่มีตัวเลือกใด ๆ " ดังนั้นสิ่งที่จะทำงานคือOptions -Indexes +FollowSymLinks
นอกเหนือจากสองวิธีที่ผ่านมาแล้ว (แก้ไข/etc/apache2/apache2.confหรือเพิ่มตัวเลือก -Indexesในไฟล์. htaccess) นี่เป็นอีกวิธีหนึ่ง
a2dismod autoindex
รีสตาร์ทเซิร์ฟเวอร์ apache2 หลังจากนั้น
sudo service apache2 restart
a2dismod -f autoindex
สำหรับการดำเนินการคำสั่งที่ไม่ปิดกั้น
Alias
โฟลเดอร์และพา ธ อื่น ๆ ที่ให้บริการโดย Apache
แก้ไข / สร้าง.htaccess
ไฟล์ภายใน/galerias
ด้วยสิ่งนี้:
Options -Indexes
การเรียกดูไดเรกทอรีจัดทำโดยโมดูลmod_autoindex
.htaccess
ไฟล์ (ซึ่งไม่ใช่วิธีที่มีประสิทธิภาพมากที่สุด แต่มักจะเป็นตัวเลือกเดียวในบัญชีโฮสติ้งที่ใช้ร่วมกันหรือระบบไม่ว่าง sysadmins)
คุณสามารถวางไฟล์ว่างที่เรียกว่าindex.html
ลงในแต่ละไดเรกทอรีที่คุณไม่ต้องการในรายการ สิ่งนี้มีข้อดีหลายประการ:
.htaccess
ไฟล์สิ่งนี้อาจนำไปสู่ข้อความ "ข้อผิดพลาด 500 - ข้อผิดพลาดเซิร์ฟเวอร์ภายใน" สำหรับผู้ใช้ของคุณ!)ตามหลักการแล้วการทำดัชนีอัตโนมัติอาจถูกทริกเกอร์ด้วยไฟล์อื่น (ซึ่งถูกควบคุมโดยDirectoryIndex
ตัวเลือก) แต่ฉันยังไม่เจอสิ่งนี้ในโลกแห่งความเป็นจริง
สิ่งหนึ่งที่สำคัญคือการตั้งค่า apache เว็บเซิร์ฟเวอร์ที่ปลอดภัยคือการปิดการเรียกดูไดเรกทอรี โดยค่าเริ่มต้น apache มาพร้อมกับคุณสมบัตินี้เปิดใช้งาน แต่มันเป็นความคิดที่ดีที่จะปิดการใช้งานเว้นแต่คุณจะต้องการมันจริงๆ เปิดไฟล์ httpd.conf ในโฟลเดอร์ apache และค้นหาบรรทัดที่มีลักษณะดังนี้:
Options Includes Indexes FollowSymLinks MultiViews
จากนั้นลบคำดัชนีและบันทึกไฟล์ รีสตาร์ท apache แค่นั้นแหละ
หากคุณเลือกที่จะแก้ไขไฟล์ httpd.conf ของคุณเพื่อแก้ไขปัญหานี้และคุณมีคำสั่งตัวเลือกหลายตัวคุณต้องเพิ่ม - หรือ + ก่อนแต่ละคำสั่ง ตัวอย่าง:
ตัวเลือก -Indexes + FollowSymLinks
นี่ไม่ใช่คำตอบเพียงแค่ประสบการณ์ของฉัน:
บนของ Ubuntu 12.04 apache2 ไม่พบIndexes
ทั้งใน apache2.conf หรือ httpd.conf sites-available/default
โชคดีที่ฉันพบใน หลังจากลบออกตอนนี้จะไม่เห็นรายการไดเรกทอรี sites-available/default-ssl
อาจจะต้องทำเพื่อ
เปิดไฟล์. htaccess ของคุณแล้วป้อนรหัสต่อไปนี้
Options -Indexes
ตรวจสอบให้แน่ใจว่าคุณกดปุ่ม ENTER (หรือปุ่ม RETURN หากคุณใช้ Mac) หลังจากป้อนคำว่า "Options -Indexes" เพื่อให้ไฟล์ลงท้ายด้วยบรรทัดว่าง
เพิ่มสิ่งนี้ในไฟล์. htaccess ของคุณ:
Options -Indexes
หากไม่สามารถใช้งานได้ไม่ว่าด้วยเหตุผลใดก็ตามให้ลองใช้ไฟล์. htaccess ของคุณ:
IndexIgnore *
หากต้องการตอบ @ GauravKachhadiya ให้สมบูรณ์:
IndexIgnore *.jpg
หมายถึง "ซ่อนเฉพาะไฟล์นามสกุล. jpgจากการจัดทำดัชนี
IndexIgnore directive ใช้นิพจน์ตัวแทนเพื่อจับคู่กับไดเรกทอรีและไฟล์
ตัวอักษรรูปดาวมันตรงกับอักขระใด ๆ ในสตริงเช่น: foo หรือ foo.extension ในตัวอย่างต่อไปนี้เราจะปิดรายการไดเรกทอรีไม่มีไฟล์หรือ dirs จะปรากฏในดัชนี:
ดัชนีชี้วัด *
หรือถ้าคุณต้องการซ่อนไฟล์พิเศษในรายการไดเรกทอรีเราสามารถใช้งานได้
IndexIgnore *.php
* .php => จับคู่สตริงที่ขึ้นต้นด้วยอักขระใด ๆ และลงท้ายด้วย. php
ตัวอย่างด้านบนซ่อนไฟล์ทั้งหมดที่ลงท้ายด้วย. php