Score:1

Nginx รับ / จาก /index.php โดยไม่มี "ดัชนีไดเรกทอรีต้องห้าม" ที่อื่น

ธง us

ฉันต้องการ / ที่จะแสดงเช่น /index.php.

ตอนนี้ฉันมี

ดัชนี index.php;
ถ้า ( $request_uri = /index.php ) { กลับ 301 /; }
ตำแหน่ง / { try_files $uri $uri/ =404; }

และทุกอย่างทำงานได้ดี แต่มีข้อผิดพลาดบางอย่างเช่น

ดัชนีไดเร็กทอรีของ "/home/.../public_html/tmp/" เป็นสิ่งต้องห้าม

ที่ฉันต้องการจะลบออก ปัญหาที่นี่คือ $uri/ ใน try_files $uri $uri/ =404;

https://stackoverflow.com/questions/19285355/nginx-403-error-directory-index-of-folder-is-forbidden/38046124#38046124

Ubuntu + Nginx: ห้ามใช้ดัชนีไดเร็กทอรีของ "/var/www/app/my-app/"

แต่ถ้าฉันเปลี่ยนเป็น try_files $uri =404; หรือ try_files $uri /index.html index.php =404; จากนั้น "/" จะหยุดทำงานและแสดง 404

ทำไมถึงถอด $uri/ ป้องกันการแสดง index.php ถ้าฉันมี ดัชนี index.php;?

ฉันจะตั้งค่าได้อย่างไร / ควรตรวจสอบ index.php และหากไม่มี index.php แสดงว่า 404 ไม่มีการโยนข้อผิดพลาด "เป็นสิ่งต้องห้าม"?

Richard Smith avatar
jp flag
เว็บไซต์ของคุณมีไฟล์ `index.php` มากกว่าหนึ่งไฟล์หรือไม่
us flag
อาจมีหลายอย่าง แต่ฉันสนใจเฉพาะ root `/index.php` ทุกอย่างใช้งานได้แล้ว แต่ห้ามใช้ `ดัชนีไดเร็กทอรีของ "..." เมื่อมีคนเข้าชมเพจที่ไม่ได้อยู่ที่นี่เพราะ `$uri/`
Score:2
ธง jp

เดอะ $uri/ คำใน ก try_files แถลงการณ์มีวัตถุประสงค์ที่แตกต่างกันสองประการ

หาก URI ไม่ได้ลงท้ายด้วย a /แต่อ้างอิงไดเร็กทอรี Nginx จะสร้างการเปลี่ยนเส้นทาง 301 เพื่อต่อท้าย a /.

หาก URI ลงท้ายด้วย a / และอ้างอิงไดเร็กทอรี ฟังก์ชัน Index จะถูกเรียกใช้ ซึ่งอาจส่งผลให้เกิดการเปลี่ยนเส้นทางภายในไปยังไฟล์ดัชนี หรือการตอบสนอง 403 หากไม่พบไฟล์ดัชนี

วิธีหนึ่งในการระงับการตอบสนอง 403 โดยไม่ส่งผลกระทบต่อสิ่งอื่นๆ มากเกินไปคือการจัดการ URI ที่ลงท้ายด้วย a / แตกต่างกัน

ตัวอย่างเช่น:

ตำแหน่ง ~ /$ { 
    ถ้า (-f ${request_filename}index.php) {
        เขียนใหม่ ^(.*)/$ $1/index.php last;
    }
    กลับ 404;
}

ข้างต้นจะทดสอบการมีอยู่ของ index.php ภายในไดเร็กทอรี และส่งคืน 404 หากไม่มีอยู่

Score:0
ธง us

วิธีการต่อไปนี้อาจใช้ได้ผล:

สถานที่ = /index.php {
    กลับ 301 /;
}

ที่ตั้ง / {
    try_files $uri $uri/ /index.php =404;
}

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา