ค้นหาเว็บไซต์

เปลี่ยนเส้นทาง URL เว็บไซต์จากเซิร์ฟเวอร์หนึ่งไปยังเซิร์ฟเวอร์อื่นใน Apache


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

สมมติว่าคุณกำลังออกแบบไซต์อินทราเน็ตของบริษัทของคุณใหม่ คุณได้ตัดสินใจที่จะจัดเก็บเนื้อหาและการจัดรูปแบบ (ไฟล์ HTML, JavaScript และ CSS) ไว้ในเซิร์ฟเวอร์เครื่องหนึ่งและเอกสารประกอบอยู่ที่เซิร์ฟเวอร์อื่น - อาจเป็น แข็งแกร่งยิ่งขึ้น

การอ่านที่แนะนำ: 5 เคล็ดลับในการเพิ่มประสิทธิภาพของเว็บเซิร์ฟเวอร์ Apache ของคุณ

อย่างไรก็ตาม คุณต้องการให้การเปลี่ยนแปลงนี้โปร่งใสต่อผู้ใช้ของคุณ เพื่อให้พวกเขายังคงสามารถเข้าถึงเอกสารได้จาก URL ปกติ

ในตัวอย่างต่อไปนี้ ไฟล์ชื่อ assets.pdf ถูกย้ายจาก /var/www/html ใน 192.168.0.100 (ชื่อโฮสต์: เว็บ) ไปยังตำแหน่งเดียวกันใน 192.168.0.101 (ชื่อโฮสต์: web2)

เพื่อให้ผู้ใช้สามารถเข้าถึงไฟล์นี้เมื่อพวกเขาเรียกดู 192.168.0.100/assets.pdf ให้เปิดไฟล์การกำหนดค่าของ Apache บน 192.168.0.100 และเพิ่มกฎการเขียนใหม่ต่อไปนี้ (หรือ คุณยังสามารถเพิ่มกฎต่อไปนี้ลงในไฟล์ .htaccess ของคุณได้:

RewriteRule "^(/assets\.pdf$)" "http://192.168.0.101$1"  [R,L]

โดยที่ $1 เป็นตัวยึดตำแหน่งสำหรับทุกสิ่งที่ตรงกับนิพจน์ทั่วไปภายในวงเล็บ

ตอนนี้ให้บันทึกการเปลี่ยนแปลง อย่าลืมรีสตาร์ท Apache และมาดูว่าจะเกิดอะไรขึ้นเมื่อเราพยายามเข้าถึง assets.pdf โดยเรียกดูไปที่ 192.168.0.100/assets.pdf:

แนะนำให้อ่าน: 25 เคล็ดลับ '.htaccess' ที่มีประโยชน์สำหรับเว็บไซต์

จากข้อมูลด้านบนด้านล่าง เราจะเห็นว่าคำขอที่สร้างขึ้นสำหรับ assets.pdf บน 192.168.0.100 ได้รับการจัดการโดย 192.168.0.101 จริงๆ

tail -n 1 /var/log/apache2/access.log

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

และเช่นเคย โปรดใช้แบบฟอร์มความคิดเห็นด้านล่างหากคุณมีข้อสงสัยเกี่ยวกับบทความนี้ เราหวังว่าจะได้ยินจากคุณ!