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


53

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

उदाहरण:

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

मैं mysite.com/ को mysecondsite.com पर पुनर्निर्देशित करना चाहता हूं और केवल htaccess का उपयोग करके 301 पुनर्निर्देशित करता हूं

जवाबों:


75

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

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

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


1
मेरे मामले में, मुझे mysite.com/ पर ट्रैफ़िक पुनर्निर्देशित करने की आवश्यकता थी, लेकिन foo.mysite.com नहीं, इसलिए पंक्ति 2 में एक regex जोड़ना था: RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]यह सुनिश्चित करने के लिए कि मैच सटीक मेजबान के लिए था
jaygooby

सर्वर चर की जांच करने के लिए एक अतिरिक्त शर्त का उपयोग करने के बजाय, RewriteRule पैटर्न में URL-पथ की जाँच करना (जैसा कि @ DaveForgac के उत्तर में है) । REQUEST_URI
MrWhite

38

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

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

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


मेरे लिए थोड़ी भिन्नता काम कर गई। अन्य सभी नियमों के लागू होने के बाद, मैं अपने htaccess के निचले भाग में जोड़ा गया, मैं बस अपने रूट डोमेन (किसी भी उप डोमेन के बिना) में किसी को भी एक स्वागत योग्य पृष्ठ सौंपना चाहता था: RewriteCond% {HTTP_HOST}! ^ (Subdomain1। Subdomain2) \ _ mysite \ .com $ [NC] RewriteRule ^ $ /welcome.php [NC, L]
मार्संडबैक

15

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

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

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

-3

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

Redirect 301 / http://mysecondsite.com/

12
यह वह नहीं करेगा जो जरदेल चाहता है। यह केवल रूट के बजाय सभी पृष्ठों को पुनर्निर्देशित करेगा।
शारोज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.