2012-04-19 4 views
12

У меня есть два разных домена (скажем, www.site1.com и www.site2.com), которые указывают на тот же сервер хостинга.htaccess переписать на имя хоста или доменное имя

Мне нужны два разных доменных имени, потому что я хочу использовать первый для итальянского содержимого, а второй для английского содержимого. Содержимое одного и того же, если только для языка, но в доменах есть, чтобы отличаться.

Итак, я хотел бы написать правило, которое позволяет мне переводить с:

  • www.site1.com в /?lang=it

  • www.site2.com в /?lang=en

Я обычно использую тот же доменное имя для многих языков переписывания от www.site.com/it/ до /?lang=it (конечно, прозрачная переписывание - пользователь не видит никакого другого URL-адреса).

Я хотел бы достичь того же, используя разные домены, но не могу понять, как ... Я работал над ним часами, и я не могу достичь того, чего хочу!

Обычно я использую это:

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 RewriteRule: два домена с использованием того же сервера и каталога] (http://stackoverflow.com/questions/6972413/htaccess-rewriterule-two-domains-using-same-server-and-directory) –

+0

Что происходит с этой настройкой? И если вы удалите второй RewriteCond ('^/index.php? Lang = it' никогда не должны совпадать, REQUEST_URI не выставляет параметры запроса, вместо этого проверяет% {QUERY_STRING})? – nikoshr

+0

Я пробовал много разных «версий» правил в последнем сером блоке ... Я всегда получаю ошибку HTTP 500 или просто пустой $ _GET. Я имею в виду, среди других предварительных условий, с или без второго условия «RewriteCond% {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 перед этим правилом.

спасибо !!

Смежные вопросы