ไม่สามารถดูไฟล์ PDF ที่อัปโหลดไปยังไดเร็กทอรีส่วนตัวและส่งกลับข้อผิดพลาด 404
สิ่งนี้ยังเกิดขึ้นกับผู้ใช้ด้วย ผู้ดูแลระบบ บทบาท.
ไฟล์ประเภทอื่นสามารถดูได้โดยไม่มีปัญหา
ปัญหานี้เกิดขึ้นในสภาพแวดล้อมการใช้งานจริงซึ่งโฮสต์บน Cloudways ซึ่งไดเร็กทอรีส่วนตัวถูกตั้งค่าจากบรรทัดต่อไปนี้ใน การตั้งค่า.php ไฟล์.
$settings['file_private_path'] = $app_root '/../ส่วนตัว';
ขั้นตอนในการสืบพันธุ์
เข้าสู่ระบบเว็บไซต์ในฐานะผู้ดูแลระบบ (อันที่มี ผู้ดูแลระบบ บทบาท)
เพิ่มฟิลด์ไฟล์ลงใน บทความ ชนิดของเนื้อหา
ตั้งของมัน อัปโหลดปลายทาง ถึง ไฟล์ส่วนตัว
ชุด นามสกุลไฟล์ที่อนุญาต ถึง txt, pdf, doc, docx และ ขนาดอัปโหลดสูงสุด เป็น 1Â MB
ตั้งค่าไดเร็กทอรีไฟล์เป็น บทความทดสอบ (เมื่อไดเร็กทอรีรูทของเซิร์ฟเวอร์คือ public_html/เว็บควรอัปโหลดไฟล์ส่วนตัวไปที่ public_html/private/article-test.)
สร้าง บทความ โหนดและอัปโหลดไฟล์ PDF ที่ถูกต้องซึ่งมีขนาดน้อยกว่า 1 MB (doc_0.pdf)
บันทึกและเผยแพร่โหนด
ดูโหนดใหม่
คลิกลิงก์ไฟล์สำหรับไฟล์ที่อัปโหลด ซึ่งลิงก์ไปยัง https://<โดเมน>/system/files/article-test/doc_0.pdf
)
ไซต์ส่งคืนข้อผิดพลาด 404
แถบเบราว์เซอร์แสดงขึ้น https://<โดเมน>/user/login?destination=/system/files/article-test/doc_0.pdf
เป็น URL
ไปที่ https://<โดเมน>/admin/content/files
คลิกที่ลิงค์ไฟล์ (https://<โดเมน>/system/files/article-test/doc_0.pdf
)
ไซต์ยังคงส่งคืนข้อผิดพลาด 404
บันทึก Drupal แสดง ไม่พบหน้าที่ตั้ง https://<โดเมน>/user/login?destination=%2Fsystem%2Ffiles%2Farticle-test%2Fdoc_0.pdf
ลบไฟล์ที่อัพโหลดออกจากโหนด
อัปโหลดไฟล์ข้อความหรือไฟล์ Microsoft Word
การดูไฟล์ไม่ส่งคืนข้อผิดพลาด 404 ใดๆ
กำลังดูไฟล์ ระบบจะแจ้งให้คุณบันทึกหรือดูไฟล์
ฉันไม่เชื่อว่านี่เป็นปัญหาการอนุญาต มิฉะนั้น ฉันจะไม่สามารถเข้าถึงไฟล์ประเภทอื่นเหล่านี้ได้
สิทธิ์ของไฟล์สำหรับ public_html/ส่วนตัว ไดเร็กทอรีและไดเร็กทอรีถูกตั้งค่าเป็น 775 การอนุญาตไฟล์สำหรับไฟล์ที่อัปโหลดถูกตั้งค่าเป็น 664
มีการตั้งค่า (PHP, Drupal หรือเซิร์ฟเวอร์) ที่ฉันควรเปลี่ยนเพื่ออนุญาตให้ดูไฟล์ PDF หรือไม่
มี .htaccess ไฟล์ใน public_html/ส่วนตัว ไดเรกทอรี เมื่อคิดว่ามันอาจเกี่ยวข้องกับปัญหา ฉันจึงเปลี่ยนชื่อชั่วคราวเป็น .htaccess.saved. จากนั้นฉันพยายามเข้าถึงไฟล์ PDF ที่อัปโหลด แต่ก็ยังได้รับข้อผิดพลาด 404
ข้อเท็จจริงอีกประการหนึ่ง: หากไฟล์ PDF ไฟล์เดียวกันถูกอัปโหลดไปยังไดเร็กทอรีสาธารณะของไซต์ สามารถดูไฟล์ได้โดยไม่มีข้อผิดพลาด