सवाल रूट को रीडायरेक्ट कैसे करें और केवल htaccess के माध्यम से रूट करें?


मैं केवल अपनी रूट को किसी अन्य यूआरएल पर रीडायरेक्ट करना चाहता हूं, लेकिन उन सभी / उप / निर्देशिकाओं को बनाए रखना जहां वे संबंधित हैं (और रीडायरेक्ट)

उदाहरण:

mysite.com/1 कहीं पर रीडायरेक्ट करता है mysite.com/admin एक पृष्ठ खोलता है

मैं mysite.com/ को mysecondsite.com पर रीडायरेक्ट करना चाहता हूं और केवल यह 301 रीडायरेक्ट के साथ htaccess का उपयोग कर रीडायरेक्ट करना चाहता हूं


49
2017-08-26 01:25


मूल




जवाब:


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

RewriteEngine on
RewriteCond %{HTTP_HOST} mysite\.com [NC]
RewriteCond %{REQUEST_URI} ^/$
Rewriterule ^(.*)$ http://mysecondsite.com/ [L,R=301]

यदि आपको पुराने डोमेन की जांच करने की आवश्यकता नहीं है (उदाहरण के लिए, यदि निर्देशिका जहां आपकी .htaccess रखा गया है केवल पुराने डोमेन द्वारा उपयोग किया जाता है) तो आप दूसरी पंक्ति को हटा सकते हैं।


69
2017-08-26 02:44



मेरे मामले में, मुझे mysite.com/ पर यातायात को पुनर्निर्देशित करने की आवश्यकता थी, लेकिन foo.mysite.com नहीं, इसलिए लाइन 2 में रेगेक्स जोड़ना पड़ा: RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC] यह सुनिश्चित करने के लिए कि मैच सटीक मेजबान के लिए था - jaygooby
यूआरएल-पथ को जांचना अधिक कुशल है RewriteRule  पैटर्न (जैसा कि @ डेवफोर्गैक के उत्तर में), अतिरिक्त उपयोग करने के बजाय शर्त जांचने के लिए REQUEST_URI सर्वर चर। - MrWhite


यदि आपका मतलब है कि आप केवल दूसरे डोमेन पर "/" रीडायरेक्ट करना चाहते हैं, तो यह काम करेगा:

RewriteEngine on
RewriteRule ^$ http://www.example.com/ [R=301,L]

यह केवल डोमेन के रूट से मेल खाता है इसके बाद कुछ भी नहीं है, इसलिए यह केवल निर्दिष्ट नाम के बिना डोमेन नाम को रीडायरेक्ट करेगा।


36
2017-08-26 02:25



मेरे लिए थोड़ा सा काम किया। अन्य सभी नियमों के बाद, मेरे एचटीएसीएसी के निचले भाग में जोड़ा गया, मैं बस अपने रूट डोमेन (बिना किसी सबडोमेन के) पर जाने वाले किसी भी व्यक्ति को स्वागत पृष्ठ प्रस्तुत करना चाहता था: रिवाइटकंड% {HTTP_HOST}! ^ (सबडोमेन 1 | सबडोमेन 2) \। Mysite \ .com $ [एनसी] रिवाइटरूल ^ $ / welcome.php [एनसी, एल] - MarsAndBack


यह ठीक काम करना चाहिए:

RedirectMatch 301 ^/$ https://example.com/

11
2017-12-17 19:48



यदि आप पहले से ही अन्य रीडायरेक्ट के लिए mod_rewrite का उपयोग नहीं कर रहे हैं तो यह बेहतर होगा (मौजूदा उत्तरों के लिए)। - MrWhite


एक छोटा समाधान:

Redirect 301 / http://mysecondsite.com/

-3
2018-01-30 13:18



यह जोर्डल चाहता है वह नहीं करेगा। यह रूट की बजाय सभी पृष्ठों को रीडायरेक्ट करेगा। - sharoz