2012-04-19 15 views
12

पर आधारित है मेरे पास दो अलग-अलग डोमेन हैं (मान लें www.site1.com और www.site2.com) जो एक ही होस्टिंग सर्वर को इंगित करते हैं।htaccess rewrite होस्टनाम या डोमेन नाम

मुझे दो अलग-अलग डोमेन नामों की आवश्यकता है क्योंकि मैं इतालवी सामग्री के लिए पहला और अंग्रेजी सामग्री के लिए दूसरा उपयोग करना चाहता हूं। सामग्रियां समान हैं, जब तक कि भाषा के लिए, लेकिन डोमेन में अलग-अलग होने के लिए हैं।

  • www.site1.com/?lang=it

  • www.site2.com/?lang=en को

मैं आमतौर पर एक ही उपयोग करने के लिए:

तो, मैं एक नियम मुझ से अनुवाद कर देता है कि लिखने के लिए करना चाहते हैं www.site.com/it/ सेपर कई अलग-अलग भाषाओं के लिए डोमेन नाम पुनः लिखना(बेशक, एक पारदर्शी पुनर्लेखन - उपयोगकर्ता को कोई अलग यूआरएल नहीं दिखता है)।

मैं अलग-अलग डोमेन का उपयोग करके इसे प्राप्त करना चाहता हूं लेकिन मुझे पता नहीं लगा सकता कि मैं कैसे घंटों तक काम कर रहा हूं और मैं जो चाहता हूं उसे प्राप्त नहीं कर सकता!

आमतौर पर मैं का उपयोग करें:

RewriteCond %{REQUEST_URI} /([a-z]{2}) 
RewriteRule ^([a-z]{2})[/]*$ /index.php?lang=$1 [NC,QSA] 

मैं इस एक काम नहीं मिल सकता है, अलग-अलग डोमेन का उपयोग करें:

RewriteCond %{HTTP_HOST} ^www.site1\.com [NC] 
RewriteCond %{REQUEST_URI} !^/index.php?lang=it 
RewriteRule ^(.*)$ /index.php?lang=it [NC,QSA] 

RewriteCond %{HTTP_HOST} ^www.site2\.com [NC] 
RewriteCond %{REQUEST_URI} !^/index.php?lang=en 
RewriteRule ^(.*)$ /index.php?lang=en [NC,QSA] 
+2

[.htaccess रिवाइटरूल: दो डोमेन जो एक ही सर्वर और निर्देशिका का उपयोग कर रहे हैं] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/6972413/htaccess-rewriterule-two-domains-using-same-server-and- निर्देशिका) –

+0

इस सेटअप के साथ क्या होता है? और यदि आप दूसरे रिवाइटकंड को हटाते हैं ('^/index.php? Lang = it' कभी मेल नहीं खाता है, REQUEST_URI क्वेरी पैरामीटर का पर्दाफाश नहीं करता है, इसके बजाय% {QUERY_STRING} जांचें)? – nikoshr

+0

मैंने बाद वाले भूरे रंग के ब्लॉक में नियमों के कई अलग-अलग "संस्करण" की कोशिश की है ... मुझे हमेशा एक HTTP 500 त्रुटि या केवल खाली $ _GET मिलता है। मेरा मतलब है, अन्य शर्तों के साथ या बिना दूसरी शर्त के "रिवाइटकंड% {REQUEST_URI}! ^/Index.php? Lang = it"। –

उत्तर

21

लॉरेंस Cherone - धन्यवाद, कि एक आकर्षण की तरह काम करता है! अब यह काम करता है:

RewriteCond %{HTTP_HOST} ^www\.site1\.com [NC] 
RewriteRule ^(.*)$ index.php?lang=it [NC,QSA] 
RewriteCond %{HTTP_HOST} ^www\.site2\.com [NC] 
RewriteRule ^(.*)$ index.php?lang=en [NC,QSA] 

बेशक मैं इस नियम से पहले www रीडायरेक्ट की जांच करता हूं।

धन्यवाद !!

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