ตามปกติเวลาผมติดตั้ง Apache เสร็จแล้ว ผมมักจะแก้ไขไฟล์คอนฟิก /etc/httpd/conf/httpd.conf อยู่หลายส่วนด้วยกันเพื่อปกป้อง Apache และ Server ของจากผู้ไม่หวังดีไม่ให้รู้ได้ง่ายๆว่าในเครื่องของผมใช้ Apache เวอร์ชั่นอะไร รัน OS ตัวไหนอยู่และเวอร์ชั่นอะไร อย่างหนึ่งที่ผมมักจะทำคือ ปิดไม่ให้ Browseไฟล์ในเว็บไดเร็คตอรี่ได้และเมื่อมีใครพยายามเปิดไฟล์ที่ไม่มีอยู่ในไดเร็คตอรี่นั่น หรือไม่ได้ระบุชื่อไฟล์มาด้วย (ยกเว้น index.html, index.php สองไฟล์นี้ไม่ต้องระบุชื่อไฟล์มาครับ) Apache ก็จะบอกส่งกลับไปบอกว่า 403 Forbidden
แต่การทำแบบนี้มันจะมีผลกับทุกๆไดเร็คตอรี่ของ Web Server ผู้ใช้งานต้องระบุชื่อไฟล์มาด้วย เช่น http://x.x.x.x/myweb/report.html ไม่อย่างนั้นก็จะได้ 403 Forbidden กลับไป มีบางเพจที่ผมต้องการให้ยูสเซอร์เห็นชื่อไฟล์ทุกไฟล์ข้างใน เช่นไดเร็คตอรี่ที่เก็บไฟล์ไว้ให้ดาวน์โหลด ผมต้องการให้ยูสเซอร์พิมพ์เท่านี้ว่า http://x.x.x.x/soundmonitor ก็จะเห็นทุกไฟล์ข้างใน
และเมื่อพยายามคลิ๊กที่ Parent Directory ก็จะเห็นแบบนี้ครับ เพราะว่าเพจอื่นผมไม่ได้เซ็ตให้ Browse ได้
มีวิธีการทำไม่ยากครับ ดังนี้
สร้างไฟล์ /etc/httpd/conf.d/alias.conf
และใส่ข้อมูลดังต่อไปนี้
Alias /download /opt/download
<Directory "/opt/download">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ใส่คำว่า Indexes ตรง Options รีสตาร์ท Apache ใหม่ ก็เรียบร้อยครับ
บทความที่เกี่ยวข้อง
การติดตั้ง Apache Web Server บน CentOS, RHEL
เทคนิคการใช้งาน Alias บน Apache Web Server