2012-04-19 12 views
12

Tengo dos dominios diferentes (digamos www.site1.com y www.site2.com) que apuntan al mismo servidor de alojamiento.reescritura htaccess basada en nombre de host o nombre de dominio

Necesito los dos nombres de dominio diferentes porque quiero usar el primero para los contenidos italianos y el segundo para los contenidos en inglés. Los contenidos son los mismos, a menos que sea para el idioma, pero los dominios tienen para ser diferentes.

Por lo tanto, me gustaría escribir una regla que me permite traducir de:

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

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

que suelen utilizar la misma nombre de dominio para muchos idiomas diferentes reescritura de www.site.com/it/ a /?lang=it (por supuesto, una reescritura transparente: el usuario no ve ninguna URL diferente).

Me gustaría lograr lo mismo usando diferentes dominios pero no puedo entender cómo ... ¡He estado trabajando en ello durante horas y no puedo lograr lo que quiero!

Por lo general, yo uso esto:

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

no puedo conseguir éste trabajo, el uso de diferentes dominios:

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

posible duplicado de [.htaccess RewriteRule: dos dominios utilizando el mismo servidor y directorio] (http://stackoverflow.com/questions/6972413/htaccess-rewriterule-two-domains-using-same-server-and-directory) –

+0

¿Qué sucede con esta configuración? Y si elimina el segundo RewriteCond ('^/index.php? Lang = it' nunca debe coincidir, REQUEST_URI no expone los parámetros de consulta, marque% {QUERY_STRING} en su lugar)? – nikoshr

+0

He intentado muchas "versiones" diferentes de las reglas en el último bloque gris ... Siempre obtengo un error HTTP 500 o simplemente un $ _GET vacío. Quiero decir, entre los otros tentativos, con o sin la segunda condición "RewriteCond% {REQUEST_URI}! ^/Index.php? Lang = it". –

Respuesta

21

Lawrence Cherone - Gracias, que uno funciona como un encanto! Ahora funciona:

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] 

Por supuesto que verifico el www redirigir antes de esta regla.

Gracias!

Cuestiones relacionadas