Score:0

nginx regex rewrite ไม่ทำงานสำหรับสคริปต์ php

ธง cn

ฉันกำลังพยายามบล็อกการเรียกใช้สคริปต์ PHP ในบางโฟลเดอร์สำหรับการติดตั้ง WordPress แต่ Nginx ทำให้ฉันลำบาก

สถานที่ = /wp/wp-includes/category.php {
    ปฏิเสธทั้งหมด
}

ฉันสามารถบล็อกแต่ละสคริปต์โดยใช้การจับคู่แบบตรงทั้งหมด แต่เมื่อฉันใช้ regex มันใช้งานไม่ได้

ตำแหน่ง ~* /wp/wp-includes/.*\.php$ {
    ปฏิเสธทั้งหมด
}

ฉันไม่แน่ใจว่าฉันทำอะไรผิด?

แก้ไข

ฉันมีกฎต่อไปนี้หลังจากกฎข้างต้น:

ที่ตั้ง / {
    error_page 418 = @cachemiss;
    # เพื่ออนุญาตให้ POST บนหน้าคงที่ จะค้นหากับฉันผิดพลาด
    error_page 405 =200 $uri;
    recursive_error_pages บน;

    # บายพาสแคชสำหรับสตริงข้อความค้นหาทั่วไป
  ถ้า ($arg_s !=" "") { ส่งคืน 418; } # การค้นหา
  ถ้า ($arg_p !=" "") { ส่งคืน 418; } # ขอโพส/เพจด้วยไอดี
  ถ้า ($arg_amp !=" "") { ส่งคืน 418; } # ทดสอบแอมป์
  ถ้า ($arg_preview = "จริง") { กลับ 418; } # ตัวอย่างโพสต์ / หน้า

  ถ้า ($http_cookie ~* "(wordpress_logged_in_|wp\-postpass_|woocommerce_items_in_cart|woocommerce_cart_hash|wptouch_switch_toogle|comment_author_|comment_author_email_)") {
    กลับ 418;
  }
  # โดยผ่านการแคชสำหรับคำขอโพสต์
  ถ้า ($request_method = POST ) {
    กลับ 418;
  }

  ถ้า (!-f "$rocket_file") {
    กลับ 418;
  }

  เปิดแท็ก;
  try_files "$rocket_url" $uri $uri/ /index.php$is_args$args;
}


ตำแหน่ง @cachemiss {
  try_files $uri $uri/ /index.php$is_args$args;
}
us flag
โปรดแสดงผลลัพธ์ของ `nginx -T` เพื่อให้เราได้เห็นการกำหนดค่า nginx แบบเต็ม
Ivan Shatsky avatar
gr flag
ตำแหน่งที่ตรงกันของ @Maximus Regex จะถูกตรวจสอบตั้งแต่ต้นจนจบ สถานที่แรกที่ตรงกันถูกเลือกเพื่อดำเนินการตามคำขอ การมีตำแหน่งนั้น __after__ `ตำแหน่งปกติ ~ \.php$ { ... }` ตัวจัดการ PHP จะทำให้ไม่สามารถเข้าถึงได้ - คุณต้องวางไว้ __ก่อน__ ตัวจัดการ PHP เริ่มต้น ในทางกลับกัน ตำแหน่งที่ตรงกันทุกประการ (`ตำแหน่ง = { ... }`) มีลำดับความสำคัญสูงกว่าตำแหน่งประเภทอื่นๆ ดังนั้นตำแหน่งแรกของคุณจะใช้งานได้ไม่ว่าจะวางไว้ที่ใด
cn flag
@IvanShatsky ฉันมีตำแหน่งนี้ที่ด้านบนสุดของไฟล์ จากนั้นเวิร์ดเพรสเขียนกฎใหม่
Ivan Shatsky avatar
gr flag
@Maximus คุณหมายถึงอะไรโดย "กฎการเขียนซ้ำของ wordpress"
cn flag
@IvanShatsky ฉันเพิ่งอัปเดตคำถามของฉัน ขอบคุณสำหรับความช่วยเหลือ
Ivan Shatsky avatar
gr flag
@Maximus ฉันไม่เห็นสิ่งใดที่อาจเป็นสาเหตุ แต่ฉันไม่เห็นตัวจัดการ PHP (โดยปกติจะเป็น `ตำแหน่ง ~ \.php$ { ... }` หรือสิ่งที่คล้ายกัน) คุณแน่ใจหรือว่าอยู่ด้านล่างส่วนการกำหนดค่าที่กำหนด ไม่ใช่ด้านบน

โพสต์คำตอบ

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