पथ

2011-12-09 15 views
12

को संरक्षित करते समय एक संपूर्ण डोमेन को रीडायरेक्ट कैसे करें I एक डोमेन को दूसरे डोमेन पर रीडायरेक्ट कर रहा हूं, लेकिन मैं रीडायरेक्ट में पथ को संरक्षित करना चाहता हूं। तो उदाहरण के लिए, मैं www.example.com/services/education/page.html पर जाना चाहता हूं, लेकिन मेरा रीडायरेक्ट उन्हें www.new-example.com/services/education/page.html पर लाएगा। "/services/education/page.html" पथ को संरक्षित करने के लिए मैं अपनी .htaccess फ़ाइल में क्या लिखूं?पथ

अभी मेरे पास है:

redirect 301 http://www.example.com/ http://www.new-example.com/ 

लेकिन मुझे यकीन है कि अगर काम करता है या नहीं (जैसा कि मैंने आदि डोमेन जानकारी के लिए इंतज़ार कर रहा हूँ अभी तक परीक्षण नहीं किया जा सकता) नहीं हूँ। मैं बस यह सुनिश्चित करना चाहता हूं कि जब मैं साइट को लाइव रखूं। क्या यह सही है या मैं आधार से दूर हूं?

धन्यवाद!

+0

आप अभी भी किसी मौजूदा डोमेन के साथ अपना डोमेन विवरण प्राप्त करने से पहले परीक्षण कर सकते हैं उदा। google.com या यहां तक ​​कि अस्तित्वहीन नहीं है जैसा कि आप देखना चाहते हैं कि 301 रीडायरेक्ट उन सभी मामलों में जारी किया जाता है जिन्हें आप अपने पथ को संरक्षित करते समय चाहते हैं। –

+1

हेलिकॉन में एक RegexTest ऐप है जो आपको .htaccess प्रविष्टियों का परीक्षण करने की अनुमति देता है। यह आपके इनपुट/परीक्षणों के आधार पर आपके लिए एक नियम भी उत्पन्न करेगा। – Aaron

उत्तर

22

यह करना चाहिए:

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !new-example.com$ [NC] 
RewriteRule ^(.*)$ http://new-example.com/$1 [L,R=301] 
+0

मेरे .htaccess फाइल पहले से ही में इस कोड (Wordpress) है: RewriteEngine RewriteBase/ RewriteRule^सूचकांक पर \ .php $ - [एल] RewriteCond% {REQUEST_FILENAME} -f RewriteCond % {REQUEST_FILENAME}! -d पुनर्लेखन नियम। /index.php [एल] क्या मुझे उन कोडों की 4 लाइनों की आवश्यकता है जिन्हें आपने मुझे दिया था? या मुझे दोबारा RewriteEngine में डालने में समस्या होगी (रीवाइटबेस/के लिए समान) – jasonaburton

+0

पहले दो पंक्तियों को छोड़ दें यदि वे पहले से मौजूद हैं। Htaccess –

+0

ये रीडायरेक्ट काम नहीं कर रहे हैं। मेरे .htaccess में मेरे पास एकमात्र कोड उपरोक्त मेरी टिप्पणी में पोस्ट किया गया है। क्या इसका कोई कारण नहीं है? – jasonaburton

5

कोशिश जोड़ने अपने example.com डोमेन के रूट में अपनी .htaccess के लिए निम्न

RewriteEngine On 
RewriteBase/

#for all requests to www.example.com 
RewriteCond %{HTTP_HOST} ^www\.example\.com$ 
#redirect them to new-example 
RewriteRule (.*) http://www.new-example.com/$1 [R=301,L] 
4

आपका मूल आदेश mod_alias अपाचे मॉड्यूल का उपयोग करता है, और यह काम करेगा, हालांकि आप इसे अपडेट करना चाहते हैं:

Redirect 301/http://www.new-example.com/ 

सटीक को हटा रहा है वर्तमान (पुराने) डोमेन का डोमेन का अर्थ है कि उस डोमेन को इंगित करने वाले सभी डोमेन नए डोमेन पर भेजे जाएंगे, जिससे एक-पंक्ति स्क्रिप्ट अधिक मजबूत हो जाएगी।

अन्य उत्तरों mod_rewrite अपाचे मॉड्यूल का उपयोग करते हैं। यदि आपके पास यह भी इंस्टॉल है, तो इसका उपयोग करना ठीक है, हालांकि यह एक की तुलना में कोड की 4+ लाइनें है। इसके अतिरिक्त, mod_alias "बेस" पैकेज का हिस्सा है, इसलिए सभी अपाचे सर्वर पर होना चाहिए, जबकि mod_rewrite एक वैकल्पिक एक्सटेंशन है, इसलिए कुछ में यह नहीं हो सकता है।

+0

बहुत अच्छी तरह से काम करता है। Mod_rewrite पर निर्भर मधुमक्खी के कारण यह सबसे अच्छे उत्तरों की तरह लगता है। –

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