Apache şartlı olarak özel bir http üstbilgisinden yeniden yazma işlemi gerçekleştirebilir mi?


12

(Basit amazon) yük dengeleyicisinin arkasında bir apache sunucum var. 443 ila 443 olmayan herhangi bir gelen trafiği yeniden yönlendirmek istiyorum. Sadece bir apache sanal ana bilgisayar kullanmasını tercih ederim. Yani HTTP_X_FORWARDED_PORT üstbilgisi 443 değilse tespit etmeye çalışıyorum.

RewriteCond belgelerini kontrol ettim ve sadece sınırlı HTTP üstbilgileri kümesi ile çalışıyor.

Temelde yaptığım şey şudur:

<VirtualHost *:80>
        ServerName www.example.com

        RewriteEngine On
        RewriteCond %{HTTP_X_FORWARDED_PORT} !=443
        RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

        ....
</VirtualHost>

Ancak RewriteCond, HTTP_X_FORWARDED_PORT'u tanımıyor.

Bunu başarmanın başka bir yolu var mı (sadece bir VirtualHost ile)? (bir tür gelen başlık kontrolü?)

Teşekkürler, Lance

Yanıtlar:


13

Belgeden biraz daha aşağıda RewriteCond:

%{HTTP:header}, burada başlık herhangi bir HTTP MIME başlık adı olabilir

Böylece, bunu önceden hazırlanmış üstbilgilerle tamamen aynı şekilde yapamazsınız.

Bunu dene:

RewriteCond %{HTTP:X-Forwarded-Port} !=443
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

1
SiteLock CDN tarafından iletilen bir başlıkta IP adresi olan başka bir örnek:RewriteCond %{HTTP:X-Forwarded-For} !=123.45.67.89
Liam
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.