क्या अपाचे सशर्त रूप से एक कस्टम http हेडर से पुनर्लेखन कर सकता है?


12

मेरे पास एक (सरल अमेज़ॅन) लोड बैलेंसर के पीछे एक अपाचे सर्वर है। मैं किसी भी आने वाले ट्रैफ़िक को पुनर्निर्देशित करना चाहता हूं जो 443 से 443 तक नहीं है। मैं इसे सिर्फ एक अपाचे वर्चुअल होस्ट का उपयोग करना पसंद करूंगा। इसलिए मैं यह पता लगाने की कोशिश कर रहा हूं कि अगर HTTP_X_FORWARDED_PORT हैडर 443 नहीं है।

मैंने RewriteCond डॉक्स की जाँच की है और यह केवल 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 के साथ)? (आने वाले हेडर चेक के कुछ प्रकार?)

धन्यवाद, लांस

जवाबों:


13

RewriteCondदस्तावेज़ से थोड़ा आगे :

%{HTTP:header}, जहां हेडर किसी भी HTTP MIME- हेडर नाम हो सकता है

तो, आप इसे कर सकते हैं, बस पहले से निकाले गए हेडर के समान रूप में नहीं।

इसे इस्तेमाल करे:

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

1
SiteLock CDN द्वारा पारित हेडर में IP एड्रेस के साथ एक और उदाहरण:RewriteCond %{HTTP:X-Forwarded-For} !=123.45.67.89
Liam
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.