ฉันต้องเปลี่ยนเส้นทางคำขอที่เว็บเซิร์ฟเวอร์ Apache ได้รับ โดยใช้ user_agent เพื่อกรอง
แนวคิดคือหาก user_agent เป็น "Mozilla/5.0 (Macintosh; Intel Mac OS X 12_2_1) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.2 Safari/605.1.15" พร็อกซีจะต้องเปลี่ยนเส้นทางคำขอไปที่ เครื่องที่มี ip 192.168.1.40 แต่ถ้า user agent ไม่ใช่ว่าจะต้องแสดงหน้าหลัก
ฉันมีรหัสถัดไปเพื่อเปลี่ยนเส้นทางไปยังเครื่องที่ถูกต้อง:
RewriteEngine เปิดอยู่
RewriteCond %{HTTP_USER_AGENT} "=Mozilla/5.0 (Macintosh; Intel Mac OS X 12_2_1) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.2 Safari/605.1.15"
RewriteRule ^/(.*)$ http://192.168.1.40:443/$1 [L,R=302]
แต่ฉันมีปัญหา เมื่อฉันเปลี่ยนเส้นทางไปที่ 192.168.1.40 ฉันต้องเพิ่มสตริงการสืบค้นด้วย ดังนั้นหากคำขอนั้น http://192.168.2.11/thisisthequery จากนั้นฉันต้องเปลี่ยนเส้นทางไปที่ http://192.168.1.40/thisisthequery ไม่ใช่แค่ http://192.168.1.40
ฉันได้ลองต่อไปแล้ว
RewriteRule ^/(.*)$ http://192.168.1.40:443/%{QUERY_STRING}$1 [L,R=302]
แต่มันใช้ไม่ได้ ทำไงดี??
สิ่งสำคัญ
ข้อความค้นหาไม่มีอยู่ในพร็อกซี ดังนั้นหากฉันร้องขอ http://192.168.2.11/thisisthequery ฉันคิดว่ามันไม่ได้พยายามเปลี่ยนเส้นทางเพราะการตอบกลับเป็นคำขอที่ไม่ถูกต้อง (443) ฉันจะเปลี่ยนเส้นทางก่อนที่พร็อกซีจะส่งคืนข้อความ 443 ได้อย่างไร