2012-07-19 11 views
6

मैं एक RewriteRule में HTTP_HOST शीर्ष लेख का उपयोग लेकिन बंदरगाह मैं SERVER_NAME उपयोग नहीं कर सकते बदलने के रूप में यह मेजबान हैडर से अलग होगा (जो कि मैं क्या जरूरत है)RewriteRule का उपयोग कर HTTP_HOST और एक अलग बंदरगाह

है की जरूरत है mod_rewrite के लिए HTTP_HOST चर के बंदरगाह को बंद करने का कोई तरीका है?

+0

क्या आपका मतलब है कि आप एक अलग बंदरगाह पर अपाचे चला रहे हैं? – Devraj

+0

% {SERVER_PORT} में सर्वर का बंदरगाह है। क्या आप अपना प्रश्न अधिक वर्णनात्मक बनाने के लिए संपादित कर सकते हैं? –

+0

उचित बाहरी सर्वर पर रीडायरेक्ट करने के लिए इसे http_host का उपयोग करने की आवश्यकता है। यह वर्चुअलसाइट पोर्ट 80 – arcyqwerty

उत्तर

9

हां, आप होस्ट हेडर के बंदरगाह को ट्रिम कर सकते हैं। बस %{HTTP_HOST} के खिलाफ मैच करें और %1 बैकरेफर का उपयोग करें। उदाहरण के लिए:

RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$ 
RewriteRule^http://%1:12345/ [R,L] 

बस ऐसे ही %1 backreference केवल एक RewriteCond के पहले पैरामीटर में इस्तेमाल किया जा सकता ध्यान में रखना, और एक मैच में नहीं:

RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$ 
RewriteCond %1 ^the.hostname.com$ [NC] 

ठीक है

RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$ 
RewriteCond %{REQUEST_URI} ^%1 

ठीक नहीं है

+0

पर नहीं है, मुझे लगता है कि मेरी समस्या हल हो गई है। धन्यवाद! :) – arcyqwerty

संबंधित मुद्दे