Score:0

htaccess จับคู่ทุกคำจนถึงเครื่องหมายทับสุดท้ายและเปลี่ยนเส้นทาง 301

ธง cn

ฉันพยายามหนีทุกอย่างจนถึงการเฉือนครั้งสุดท้าย แม้ว่าจะมีการเฉือนระหว่างกันก็ตาม ตัวอย่าง:

/site_url/courses/cat1/cat2/subcat/ชื่อหลักสูตร

ถึง

/site_url/course/ชื่อรายวิชา 

หรือ

/site_url/course/ชื่อรายวิชา 

ฉันจะบรรลุสิ่งนี้ด้วย Nginx หรือ Apache ได้อย่างไร

kz flag
"escape everything" - ดูเหมือนคุณต้องการ _remove_ ทุกอย่าง? `site_url` ไม่จำเป็นต้องเหมือนกันในแหล่งที่มา/เป้าหมายหรือไม่ แม้ว่าตัวอย่างของคุณดูเหมือนจะใช้อักษรตัวพิมพ์ใหญ่ของ `n` ใน `ชื่อหลักสูตร` ด้วยเช่นกัน! "ถึง `/site_url/course/courseName` หรือ ..." - 2 _alternatives_ ของคุณเหมือนกันหรือไม่ คุณมีคำสั่งอื่นใดในไฟล์ Apache `.htaccess` หรือไม่
Score:0
ธง kz

หากโดย "escape" คุณหมายถึง "remove" (ตามตัวอย่างของคุณ) คุณสามารถทำสิ่งต่อไปนี้ในการกำหนดค่า Apache ของคุณ (หรือ .htaccess) ไฟล์:

RedirectMatch 301 ^(?!/site_url/course/).+/([^/.]+)$ /site_url/course/$1

เดอะ มองไปข้างหน้าในแง่ลบ (เช่น. (?!/site_url/course/)) ทำให้แน่ใจว่าคำขอเปลี่ยนเส้นทางจะไม่ถูกเปลี่ยนเส้นทางด้วย (ซึ่งจะทำให้เกิด redirect-loop)

สมมติว่าคุณยังไม่ได้ใช้ mod_rewrite

และเห็นได้ชัดว่านี่ไม่ได้ทำอะไรเลยเพื่อทำให้ตัวอักษรเป็นตัวพิมพ์ใหญ่ เนื่องจากตัวอย่างของคุณดูเหมือนจะเปลี่ยนไป /ชื่อหลักสูตร ถึง /ชื่อหลักสูตรซึ่งเป็นสิ่งที่มองไม่เห็น ลวดลาย (เว้นแต่จะเป็นข้อความตัวอักษร?!)

ทดสอบด้วยการเปลี่ยนเส้นทาง 302 (ชั่วคราว) เพื่อหลีกเลี่ยงปัญหาการแคชที่อาจเกิดขึ้น

โพสต์คำตอบ

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