Score:0

Apache เปลี่ยนเส้นทางสำหรับไดเร็กทอรีที่ย้าย

ธง in

บนเว็บเซิร์ฟเวอร์ของเรา ไดเร็กทอรีถูก "คัดลอก" จากที่หนึ่งไปยังอีกที่หนึ่ง ตอนนี้ตำแหน่งเดิมหายไปแล้ว แต่ฉันได้รับคำขอให้เปลี่ยนเส้นทางไปยังตำแหน่งใหม่

ฉันคิดว่า mod_rewrite จะเป็นวิธีที่ดีที่สุดในการทำเช่นนี้ แม้ว่าฉันจะไม่ใช้วิธีอื่นข้างต้นหากมี รูปแบบ URL เป็นเช่นนี้

URL เก่า: www.exampleurl.com/subdir1/olddirectory/subdir2
URL ใหม่: www.exampleurl.com/subdir1/newdirectory/subdir2

Subdir1 จะไม่เปลี่ยนแปลง ดังนั้นจึงอาจละเว้นส่วน .com ได้ อย่างไรก็ตามไดเร็กทอรี subdir2 มักจะเข้าถึงได้โดยตรงและมีตัวเลือกมากมาย

เราใช้ mod_rewrite เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูลทั้งหมดผ่าน SSL/TLS อยู่แล้ว ดังนั้นการดำเนินการต่อไปน่าจะได้ผลดีที่สุด

ฉันรู้สึกว่ามีข้อมูลบางอย่างขาดหายไปตามความคิดเห็นและคำตอบจนถึงตอนนี้ ดังนั้นนี่คือวิธีกำหนดค่าไซต์และไดเร็กทอรีที่เป็นปัญหาในระดับพื้นฐานขั้นสูง หวังว่านี่จะช่วยให้มีคำตอบเพิ่มเติม

ไซต์นี้กระจายอยู่ระหว่างการกำหนดค่า VirtualHost สองรายการในสองไฟล์ หนึ่งไฟล์สำหรับ HTTP และอีกไฟล์หนึ่งสำหรับ HTTPS HTTP VirtualHost มีเงื่อนไขและกฎของ mod_rewrite สำหรับทราฟฟิกทั้งหมดที่ถูกเปลี่ยนเส้นทางไปยังพอร์ต HTTPS ไดเร็กทอรีที่เป็นปัญหาได้รับการกำหนดค่าในไฟล์แยกต่างหากภายในการเปิดใช้งาน conf ทั้งสองอย่างมีการประกาศนามแฝงและพื้นที่ไดเร็กทอรี จำเป็นต้องใช้ Alias ​​เนื่องจากไฟล์จริงอยู่ภายในไดเร็กทอรี /mnt เนื่องจาก NFS mounts

kz flag
คุณใช้คำสั่งเหล่านี้ที่ไหนกันแน่? _Aside:_ หากคำสั่งเหล่านี้อยู่ในการกำหนดค่าเซิร์ฟเวอร์ คุณน่าจะ _not_ เป็น "us[ing] mod_rewrite เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูลทั้งหมดผ่าน SSL/TLS" วายเอ็มเอ็มวี.
Chris Woelkers avatar
in flag
เนื่องจากไดเร็กทอรีดั้งเดิมหายไป ไดเร็กทีฟจะถูกวางไว้ในการกำหนดค่าเซิร์ฟเวอร์
Score:1
ธง kz

การใช้ mod_rewrite คุณสามารถทำสิ่งนี้:

RewriteRule ^/?(subdir1)/olddirectory(?:$|/)(.*) https://www.example.com/$1/newdirectory/$2 [R=301,L]

ด้านบนจะเปลี่ยนเส้นทางดังนี้:

  • /subdir1/olddirectory ถึง /subdir1/ไดเรกทอรีใหม่/
  • /subdir1/olddirectory/ ถึง /subdir1/ไดเรกทอรีใหม่/
  • /subdir1/olddirectory/<something> ถึง /subdir1/newdirectory/<something>

และเปลี่ยนเส้นทางไปยัง HTTPS + ชื่อโฮสต์มาตรฐาน จึงสามารถวางได้ ก่อน การเปลี่ยนเส้นทางตามรูปแบบบัญญัติที่มีอยู่ของคุณเพื่อลดจำนวนการเปลี่ยนเส้นทาง

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

Chris Woelkers avatar
in flag
คุณพูดถึงการวางการเปลี่ยนเส้นทางก่อนการเปลี่ยนเส้นทางตามรูปแบบบัญญัติที่มีอยู่ การเปลี่ยนเส้นทางที่มีอยู่อาศัยอยู่ในไฟล์กำหนดค่าโฮสต์เสมือน http และมีไฟล์กำหนดค่าโฮสต์เสมือนอีกไฟล์หนึ่งสำหรับ https การเปลี่ยนเส้นทางใหม่จะถูกวางไว้ในอันใดอันหนึ่งหรือทั้งสองอัน? หรืออาจจะอยู่ในไฟล์ของตัวเอง?

โพสต์คำตอบ

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