apache उपडोमेन के लिए फिर से लिखना नियम



.htaccess url-rewriting (1)

क्या उप डोमेन के लिए .htaccess का उपयोग करना संभव है जो कि मुख्य डोमेन पर फ़ाइल को इंगित करता है? मेरे पास example.com एक मुख्य डोमेन के रूप में है और उपडोमेन बनाया गया है: direct.admin के माध्यम से one.example.com, two.example.com आदि। उपडोमेन को मुख्य डोमेन पर एपी.एफ़पीपी को इंगित करना चाहिए लेकिन यूआरएल में उपडोमेन को जारी रखना चाहिए।

इसलिए one.example.com पर नेविगेट करने के लिए एप.एफ़पीपी इंगित करना चाहिए जो मुख्य डोमेन example.com में रहता है, लेकिन यूआरएल अभी भी one.example.com दिखाना चाहिए

मैंने देखा और पुनर्लेखन के कई नियमों को .htaccess पर पाया गया है कि उपडोमेन को डायरेक्टरी और अन्य जगहों पर फिर से लिखना है। वर्तमान में मुझे उपडोमेन के सबफ़ोल्डर में .htaccess फ़ाइल में यह फिर से लिखना नियम है:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com
RewriteRule ^(.*)$ http://example.com/app.php$1 [L,NC,QSA]

यह रीडायरेक्ट करता है और यूआरएल को example.com/app.php में बदल देता है, जब तक कि मैं यूआरएल को उपडोमेन दिखाना चाहूंगा: one.example.com/whatever

क्या यह .htaccess के साथ ऐसा करना संभव है, या क्या यह करने के लिए एक बेहतर तरीका भी हो सकता है?


किसी अन्य सर्वर पर एक लक्ष्य के साथ एक RewriteRule हमेशा एक रीडायरेक्ट करेगा

पूर्ण URL
अगर एक पूर्ण यूआरएल निर्दिष्ट है, तो mod_rewrite जांच करता है कि होस्टनाम वर्तमान मेजबान से मेल खाता है या नहीं । यदि ऐसा होता है, तो योजना और मेजबाननाम छीन लिया जाता है और परिणामी पथ को यूआरएल-पथ के रूप में माना जाता है। अन्यथा, दी गई यूआरएल के लिए बाहरी पुनर्निर्देशन किया जाता है । वर्तमान मेजबान को वापस एक बाहरी रीडायरेक्ट को मजबूर करने के लिए, नीचे [आर] ध्वज देखें।

पुनर्निर्देशित किए बिना अपने उपडोमेन में यूआरएल http://example.com/app.php मैप करने के लिए, आप P|proxy फ्लैग का प्रयास कर सकते हैं

RewriteRule ^(.*)$ http://example.com/app.php/$1 [P,QSA]

इसके अलावा अंतिम नोट को ध्यान में रखें

नोट: इस ध्वज का उपयोग करने के लिए mod_proxy सक्षम होना चाहिए

आमतौर पर, यह द्वारा किया जा सकता है

a2enmod proxy proxy_http

यदि लक्ष्य यूआरएल https://... , आपको mod_proxy_connect को सक्षम करना होगा, और SSLProxyEngine साथ अपने मुख्य या वर्चुअल होस्ट कॉन्फ़िग में SSL को सक्रिय करना होगा

SSLProxyEngine on

आपकी ज़रूरतों के आधार पर, ProxyPass भी एक व्यवहार्य समाधान हो सकता है