2012-04-19 18 views
12

Mam dwie różne domeny (np. Www.site1.com i www.site2.com), które wskazują ten sam serwer hostingowy.Zastąpienie htaccess na podstawie nazwy hosta lub domeny

Potrzebuję dwóch różnych nazw domen, ponieważ chcę użyć pierwszego dla włoskich treści, a drugiego dla angielskiej zawartości. Treść jest taka sama, chyba że dla danego języka, ale domeny są różne.

Tak, chciałbym napisać regułę, która pozwala mi tłumaczyć z:

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

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

Zwykle używam samo nazwa domeny dla wielu różnych wersji językowych od www.site.com/it/ do /?lang=it (oczywiście przezroczyste przepisywanie - użytkownik nie widzi żadnego innego adresu URL).

Chciałbym osiągnąć to samo używając różnych domen, ale nie wiem, jak ... Pracowałem nad tym od wielu godzin i nie mogę osiągnąć tego, co chcę!

Zwykle używam to:

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

nie mogę dostać tę jedną pracę, aby korzystać z różnych dziedzin:

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

możliwy duplikat [.htaccess RewriteRule: dwie domeny używające tego samego serwera i katalogu] (http://stackoverflow.com/questions/6972413/htaccess-rewriterule-two-domains-using-same-server-and-directory) –

+0

Co dzieje się z tą konfiguracją? A jeśli usuniesz drugi RewriteCond ('^/index.php? Lang = it' nigdy nie powinien się zgadzać, REQUEST_URI nie ujawnia parametrów zapytania, zamiast tego sprawdź% {QUERY_STRING})? – nikoshr

+0

Próbowałem wiele różnych "wersji" reguł w tym ostatnim szarym bloku ... Zawsze otrzymuję błąd HTTP 500 lub po prostu pusty $ _GET. Mam na myśli, wśród innych namiotów, z drugim warunkiem lub bez niego "RewriteCond% {REQUEST_URI}! ^/Index.php? Lang = it". –

Odpowiedz

21

Lawrence Cherone - Dziękuję, że jeden działa jak marzenie! Teraz działa:

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] 

Oczywiście sprawdzam przekierowanie www przed tą regułą.

Dziękuję!

Powiązane problemy