ฉันมีการกำหนดค่า NGINX ซึ่งก็คือ ควรจะ เปลี่ยนเส้นทางผู้ใช้ไปยังหน้าเข้าสู่ระบบ WordPress หากผู้ใช้รายนั้นไม่ได้เข้าสู่ระบบ WordPress แต่ทำงานไม่ถูกต้อง แต่จะเปลี่ยนเส้นทางแทน ทั้งหมด ผู้ใช้ไปยังหน้าเข้าสู่ระบบ โดยไม่คำนึงถึงสถานะการเข้าสู่ระบบ...
ตั้ง $bad_uri 0;
ถ้า ($request_uri ~* ((^/private-page-1/)|(^/private-page-2/)|(^/private-page-3/)|(^/private-page-4/) )){
ตั้ง $bad_uri 1;
}
ตั้ง $logged_in 0;
ถ้า ( $http_cookie ~* "wordpress_logged_in" ){
ตั้ง $logged_in 1;
}
ตั้ง $pls_stop "$bad_uri:$logged_in";
ถ้า ( $pls_stop = "1:0" ){
เขียนใหม่ ^/* https://my-website.org/wp-login.php ถาวร;
}
ในทางกลับกัน ฉันมีการกำหนดค่า NGINX อื่นที่ เป็น ทำงานได้อย่างถูกต้อง คล้ายกับข้างต้น ควรจะห้ามการเข้าถึงไฟล์ใด ๆ ภายใต้ไดเร็กทอรีเฉพาะ เว้นแต่ผู้ใช้จะลงชื่อเข้าใช้ WordPress การกำหนดค่านี้ทำงานได้อย่างสมบูรณ์ตามที่ตั้งใจไว้...
ตั้ง $bad_uri 0;
ถ้า ($request_uri ~* ^/wp-content/uploads/_private_directory/){
ตั้ง $bad_uri 1;
}
ตั้ง $logged_in 0;
ถ้า ( $http_cookie ~* "wordpress_logged_in" ){
ตั้ง $logged_in 1;
}
ตั้ง $pls_stop "$bad_uri:$logged_in";
ถ้า ( $pls_stop = "1:0" ){
กลับ 403;
}
เมื่อพิจารณาข้อเท็จจริงที่ว่าตรรกะพื้นฐานสำหรับการกำหนดค่าทั้งสองนั้นเหมือนกันจริง ๆ แล้วเหตุใดตัวแรกจึงใช้งานได้เพียงครึ่งทาง แต่ตัวที่สองใช้งานได้ดี