Score:0

ฉันจะเปลี่ยนเส้นทางสถานที่ไปยังที่อื่นได้อย่างไร แต่ไม่เปลี่ยน URL ใน Nginx

ธง co

ฉันกำลังสร้างเว็บไซต์เพื่อแสดงผลิตภัณฑ์ต่างๆ ผู้ใช้สามารถเข้าถึงหน้าผลิตภัณฑ์ต่างๆ ได้จาก URL เช่น 'mydomain.com/product/1.html', 'mydomain.com/product/2.html'

แต่ฉันไม่ต้องการนำเสนอไฟล์ html แบบคงที่เหล่านั้นโดยตรง แต่จะโหลดสคริปต์ php ก่อน ที่ mydomain.com/product.php

ดังนั้นฉันต้องการเปลี่ยนเส้นทาง 'mydomain.com/product/1.html' ไปที่ 'mydomain.com/product.php' แต่ไม่ต้องเปลี่ยน url เดิม

ฉันลองใช้ alias, try_files, return แต่ทั้งหมดเขียน url ใหม่เป็น 'mydomain.com/product.php'

ฉันยังใหม่กับ Nginx นี่อาจเป็นคำถามที่ง่ายมาก แต่ฉันพยายามทำสิ่งนี้มาสองสามวันแล้ว

Score:0
ธง gr

มีหลายวิธีที่จะทำ ...

ง่ายที่สุดคือ

เขียนใหม่ ^/product/ /product.php;

ที่ เซิร์ฟเวอร์ บริบท. URI คำขอดั้งเดิมของคุณ (เช่น /product/1.html) จะสามารถใช้ได้สำหรับ product.php สคริปต์เป็น $_SERVER['REQUEST_URI'] ค่ารายการอาร์เรย์

คุณยังสามารถใช้ เขียนใหม่ สั่งได้ที่ ที่ตั้ง บริบทนี้อาจเล็กน้อย (มาก เล็กน้อย) มีประสิทธิภาพมากขึ้น:

สถานที่ /ผลิตภัณฑ์/ {
    เขียนใหม่ ^ /product.php สุดท้าย;
}

หากต้องการ คุณสามารถรับรหัสผลิตภัณฑ์และส่งต่อไปยังของคุณ product.php สคริปต์เป็นอาร์กิวเมนต์แบบสอบถาม:

เขียนใหม่ ^/product/(.*)\.html$ /product.php?product=$1;

หรือ

สถานที่ /ผลิตภัณฑ์/ {
    เขียนใหม่ ^/product/(.*)\.html$ /product.php?product=$1 สุดท้าย;
}

ด้วยวิธีนี้รหัสผลิตภัณฑ์ของคุณ (1 สำหรับ /product/1.html ยูริ 2 สำหรับ /product/2.html URI ฯลฯ) จะพร้อมใช้งานสำหรับ product.php สคริปต์เป็น $_GET['ผลิตภัณฑ์'] ค่ารายการอาร์เรย์

คุณยังสามารถกำหนดตัวจัดการ FastCGI แต่ละตัวสำหรับสิ่งนี้:

สถานที่ /ผลิตภัณฑ์/ {
    รวม fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/product.php;
    fastcgi_pass <fastcgi_upstream_or_socket>;
}

(URI คำขอดั้งเดิมจะพร้อมใช้งานผ่าน $_SERVER['REQUEST_URI']) หรือหากต้องการรหัสสินค้าสามารถแจ้งได้ทาง $_GET['ผลิตภัณฑ์']:

ตำแหน่ง ~ /product/(.*)\.html$ {
    รวม fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/product.php;
    fastcgi_param QUERY_STRING ผลิตภัณฑ์ = $1;
    fastcgi_pass <fastcgi_upstream_or_socket>;
}

โพสต์คำตอบ

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