cPanel
Index Manager ใน cPanel คืออะไร?
Index Manager เป็นเครื่องมือใน cPanel ที่ใช้ควบคุมพฤติกรรมของเว็บเซิร์ฟเวอร์เมื่อผู้เยี่ยมชมพยายามเข้าไปยังโฟลเดอร์ที่ไม่มีไฟล์ index (เช่น index.html, index.php) ในปกติ เว็บเซิร์ฟเวอร์มีตั้งค่าเริ่มต้นให้แสดง Directory Listing (รายชื่อไฟล์ในโฟลเดอร์) เมื่อไม่มี index file ทำให้เนื้อหาและโครงสร้างไฟล์ของเว็บไซต์เปิดเผยต่อสาธารณะ ซึ่งเป็นความเสี่ยงด้านความปลอดภัย
Index Manager ช่วยให้คุณ:
- ปิดหรือซ่อน Directory Listing — บอก Apache ว่าห้ามแสดงรายการไฟล์เมื่อไม่มี index file
- ตั้งค่าไฟล์ Default Index เสมอ — เลือกว่าจะให้ใช้ index.html, index.php, default.html หรือไฟล์ใดเป็น index
- จัดการหลายโฟลเดอร์ในครั้งเดียว — ตั้งค่า Directory Listing นโยบายสำหรับทั้งโดเมนหรือเฉพาะ subfolder
ความเสี่ยงของการเปิด Directory Listing
ถ้า Directory Listing เปิดอยู่ ผู้ที่ต่ออันตรายจะเห็นไฟล์และโฟลเดอร์ทั้งหมดบนเซิร์ฟเวอร์ของคุณ เช่น:
- ไฟล์การกำหนดค่า — config.php, database.sql, .env (ถ้าวางไว้ในที่ผิด) อาจเปิดเผยรหัสผ่านฐานข้อมูล และข้อมูลลับอื่น ๆ
- ไฟล์ Backup — backup_2026.zip, database_old.sql ซึ่งอาจมีข้อมูลที่ลบแล้วแต่ยังอยู่ในไฟล์
- Admin Scripts — admin.php, upload.php, test.php ที่คุณลืมลบ ผู้โจมตีสามารถเดา URL และพยายามเข้าถึงได้
- โครงสร้างเว็บไซต์ — เห็นว่าเว็บใช้ CMS ไหน พจนานุกรมของโฟลเดอร์ช่วยให้ผู้โจมตีวางแผนการโจมตีได้ดีขึ้น
วิธีเปิดใช้งาน Index Manager ใน cPanel
Index Manager หา ใน cPanel Section ชื่อ "Files" หรือ "Domains" ขั้นตอน:
- Login เข้า cPanel ที่ https://yourdomain.com:2083
- ค้นหา Index Manager ในส่วน "Files" หรือเมนูด้านบน
- ถ้าไม่เจอ อาจหา Directory Listing หรือ File Manager Options แทน (อาจแตกต่างตามเวอร์ชั่น cPanel)
- เลือกโดเมนหรือโฟลเดอร์ที่ต้องการจัดการ (โดยปกติเป็น public_html หรือ subdomain folder)
- เลือก Disabled หรือ No Indexing เพื่อปิด Directory Listing
- หากต้องการเลือกไฟล์ index ที่ใช้เป็นค่า default ให้ใส่ชื่อไฟล์ เช่น
index.html index.php home.html - คลิก Save หรือ Update
ตั้งค่า Directory Listing ผ่าน .htaccess (วิธีอื่น)
ถ้า cPanel ของคุณไม่มี Index Manager GUI หรือต้องการควบคุมเฉพาะบาง subfolder คุณสามารถตั้งค่าผ่าน .htaccess ได้
ขั้นตอน:
- เชื่อมต่อกับ Hosting ผ่าน FTP หรือ File Manager ใน cPanel
- เลื่อนไปยังโฟลเดอร์ที่ต้องการป้องกัน (public_html หรือ subfolder อื่น)
- สร้างหรือแก้ไขไฟล์ .htaccess
- เพิ่มบรรทัดต่อไปนี้:
# ปิด Directory Listing
Options -Indexes
# ตั้งค่าไฟล์ Index Default
DirectoryIndex index.html index.php home.html
อธิบายแต่ละบรรทัด:
- Options -Indexes — บอก Apache ให้ปิด Directory Listing ห้ามแสดงรายชื่อไฟล์
- DirectoryIndex — ระบุลำดับไฟล์ที่จะใช้เป็น index เมื่อเข้าโฟลเดอร์ Apache จะหา index.html ก่อน ถ้าไม่มี ให้หา index.php เป็นต้น
5. บันทึกไฟล์ .htaccess
ไฟล์ Index ที่นิยม และลำดับที่ใช้
ไฟล์ index ที่เว็บเซิร์ฟเวอร์ค้นหาโดยปกติในลำดับนี้ (ขึ้นอยู่กับการตั้งค่า DirectoryIndex):
index.html # HTML file (ไฟล์ static)
index.php # PHP file (ไฟล์ไดนามิก)
index.htm # HTML file (รูปแบบเก่า)
index.pl # Perl script
index.asp # ASP file
index.aspx # ASP.NET file
default.html # Default file ชื่อเก่า
home.html # Home page alternative
หากคุณตั้ง DirectoryIndex เป็น index.html index.php Apache จะหา index.html ก่อน และถ้าไม่มีจึงหา index.php สำหรับโฟลเดอร์นั้น
ตรวจสอบว่า Directory Listing ทำงานถูกต้อง
หลังจากตั้งค่า Index Manager แล้ว ให้ทดสอบตามขั้นตอนต่อไปนี้:
# 1. ทดสอบจาก Web Browser — เข้าไปยัง URL ของโฟลเดอร์
# https://yourdomain.com/subfolder/
# ถ้าเห็นรายชื่อไฟล์ = Directory Listing ยังเปิด
# ถ้าเห็น Error 403 หรือว่างเปล่า = Directory Listing ปิดได้
# 2. ตรวจสอบ .htaccess ว่าอยู่ในที่ที่ถูกต้อง
# ใน File Manager ให้มองหา .htaccess ใน public_html
# (หากมี Show Hidden Files เปิดอยู่)
# 3. ทดสอบ Options ที่กำหนดใน Apache
curl -I https://yourdomain.com/subfolder/
# 4. สร้างไฟล์ test.txt ลงใน subfolder และเข้าไป
# https://yourdomain.com/subfolder/
# ถ้าเห็นไฟล์ test.txt แสดง = Directory Listing ยังเปิด
# ถ้าไม่เห็นรายชื่อไฟล์ = ปิดได้สำเร็จ
# 5. ตรวจสอบไฟล์ index ว่าใช้งานได้
# สร้าง index.html ลงในโฟลเดอร์ แล้วเข้าไป
# https://yourdomain.com/subfolder/
# ควรเห็น index.html แสดงผล ไม่ใช่รายชื่อไฟล์
แก้ปัญหาที่พบบ่อย
Error: "Directory Listing ยังเปิดอยู่แม้ว่าตั้งค่า Options -Indexes แล้ว"
อาจเกิดจากนามสกุล .htaccess ไม่ถูกต้อง หรือ mod_rewrite ไม่เปิดใช้งาน
วิธีแก้:
- ตรวจสอบว่าชื่อไฟล์เป็น .htaccess ทีพอดี (ตัวอักษรเล็ก หลังจุด)
- ตรวจสอบว่าไฟล์ .htaccess อยู่ใน public_html ของโดเมนที่ต้องการ ไม่ใช่ root ของเซิร์ฟเวอร์
- ลองติดต่อ Hosting Provider ว่า mod_autoindex หรือ mod_headers เปิดใช้งานแล้ว
Error: "เมื่อเข้าโฟลเดอร์ไม่เห็นไฟล์ index หรือปรากฏ Error 403"
อาจเกิดจาก DirectoryIndex ตั้งค่าไฟล์ที่ไม่มีจริง หรือเซิร์ฟเวอร์ปฏิเสธการเข้าถึง
วิธีแก้:
- ตรวจสอบว่าไฟล์ index ที่ตั้งค่า (เช่น index.html) มีจริงในโฟลเดอร์นั้น
- ตรวจสอบสิทธิ์ไฟล์ (File Permissions) ที่ไฟล์ index — ควรเป็น 644 หรือ 755
- ลองสร้างไฟล์ index.html ใหม่ที่มีเนื้อหาอย่างง่ายแล้วทดสอบอีกครั้ง
Error: "ไฟล์ .htaccess ไม่มีผลกระทบ หรือเกิด 500 Error"
อาจเกิดจากไวยากรณ์ .htaccess ผิด หรือบรรทัดคำสั่งขัดแย้งกัน
วิธีแก้:
- ตรวจสอบไวยากรณ์ — ตรวจดูว่ามี
<IfModule>ปิดด้วย</IfModule>หรือไม่ - ลองสร้าง .htaccess ใหม่ที่มีเพียงแค่ 3 บรรทัด Options -Indexes แล้วทดสอบ
- ดู Error Log ของ cPanel หรือขอให้ Hosting Provider ดูว่าเกิด Error ไหน
Error: "ต้องการปิด Directory Listing เฉพาะ subfolder บางตัวเท่านั้น"
ถ้าต้องการปิด Listing ของ /subfolder1 แต่ปล่อยให้ /subfolder2 แสดง ต้องใส่ .htaccess ในแต่ละโฟลเดอร์
วิธีแก้: ใส่ .htaccess ที่มี Options -Indexes เฉพาะในโฟลเดอร์ที่ต้องการปิด นอกเหนือจากนี้ .htaccess ในโฟลเดอร์แม่ (parent directory) จะส่งผลให้ subfolder ทั้งหมด ตามไปด้วย
Error: "เมื่อเข้าโฟลเดอร์มี .htaccess ไฟล์โชว์ออกมา"
ถ้า Directory Listing ไม่ปิด และเบราว์เซอร์แสดง .htaccess ในรายชื่อไฟล์ แสดงว่า Options -Indexes ไม่ได้รับการรับรู้
วิธีแก้: ตรวจสอบว่า AllowOverride ใน Apache ตั้งค่าให้รับ FileInfo (ซึ่งเป็นการตั้งค่า default) ให้ติดต่อ Hosting Provider เพื่อยืนยัน
คำถามที่พบบ่อย
Q: ต่างกันอย่างไรระหว่าง Options -Indexes และการใช้ cPanel Index Manager?
A: ผลลัพธ์เหมือนกัน — ทั้งคู่ปิด Directory Listing ทำให้ไม่แสดงรายชื่อไฟล์เมื่อไม่มี index file ความต่างคือ Index Manager คือ GUI (ตัวเลือกคลิก) ที่ cPanel ให้เตรียมสำหรับผู้ใช้ที่ไม่คุ้นเคยกับ .htaccess ในขณะที่ .htaccess เป็นไฟล์ setting ของ Apache ที่เหมาะสำหรับผู้ที่ต้องการลึกซึ้งและ granular control มากกว่า
Q: ฉันต้องปิด Directory Listing ทั้งเว็บไซต์หรือแค่บาง subfolder?
A: ควรปิด Directory Listing ของทั้งเว็บไซต์เพื่อความปลอดภัยสูงสุด ใส่ .htaccess ของ public_html ที่ root ของเว็บไซต์ ทำให้ทุก subfolder ตามไปด้วย หากต้องการให้ subfolder บางตัวแสดง file list (เช่น public download folder) สามารถใส่ .htaccess ใน subfolder นั้นพร้อมกับ Options +Indexes เพื่อยกเลิก setting จาก parent directory ได้
Q: ถ้าปิด Directory Listing จะทำให้ผู้ใช้ไม่สามารถดาวน์โหลดไฟล์ได้หรือ?
A: ไม่ปิด Directory Listing เพียงแค่ซ่อนรายชื่อไฟล์เมื่อเข้าโฟลเดอร์ผ่าน URL โดยตรง หากผู้ใช้รู้ชื่อไฟล์และ URL ที่แน่นอน (เช่น https://yourdomain.com/download/myfile.zip) พวกเขายังสามารถดาวน์โหลดได้ปกติ เพียงแต่ไม่เห็นรายชื่อไฟล์อื่น ๆ ในโฟลเดอร์เท่านั้น
ถ้าคุณกำลังมองหา Hosting ที่รองรับ DirectAdmin เต็มรูปแบบพร้อมเครื่องมือจัดการเว็บไซต์ครบครัน ลองดู Hosting จาก asiagb.com ที่มีทีมซัพพอร์ตดูแลตลอด 24 ชั่วโมง