ฉันมีเซิร์ฟเวอร์ apache ที่อยู่เบื้องหลัง load balancer (amazon แบบง่าย) ฉันต้องการเปลี่ยนเส้นทางการรับส่งข้อมูลใด ๆ ที่ไม่ใช่ 443 ถึง 443 ฉันต้องการให้ใช้ apache โฮสต์เสมือนเพียงโฮสต์เดียว ดังนั้นฉันจึงพยายามตรวจสอบว่าหากส่วนหัว HTTP_X_FORWARDED_PORT ไม่ใช่ 443
ฉันตรวจสอบRewriteCond docsแล้วและใช้ได้กับส่วนหัว HTTP ที่ จำกัด เท่านั้น
โดยพื้นฐานแล้วสิ่งที่ฉันทำคือ:
<VirtualHost *:80>
ServerName www.example.com
RewriteEngine On
RewriteCond %{HTTP_X_FORWARDED_PORT} !=443
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
....
</VirtualHost>
แต่ RewriteCond ไม่รู้จัก HTTP_X_FORWARDED_PORT
มีวิธีอื่นอีกไหมในการทำสิ่งนี้ให้สำเร็จ (ด้วย VirtualHost เพียงอันเดียว)? (การตรวจสอบส่วนหัวที่เข้ามาบางประเภท)
ขอบคุณแลนซ์
RewriteCond %{HTTP:X-Forwarded-For} !=123.45.67.89