2011-12-23 13 views
17

trato de buscar en stackoverflow pero no puedo encontrar mi respuesta..htaccess page y lang error

, así que necesito saber qué dominio es el dominio del usuario y qué página se está cargando.

por ejemplo: en.domain.com/contactus

esto se debe cargar la página en contacto con nosotros Inglés.

Lo que tengo es:

RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$ [NC] 
RewriteRule ^(.*)$ index.php?lang=en&page=$1 [L,NC] 

RewriteCond %{HTTP_HOST} ^en.domain.com$ [NC] 
RewriteRule ^(.*)$ index.php?lang=en&page=$1 [L,NC] 
RewriteCond %{HTTP_HOST} ^fr.domain.com$ [NC] 
RewriteRule ^(.*)$ index.php?lang=fr&page=$1 [L,NC] 
#etc... 

pero por alguna razón cuando me hago eco de la GET para la página, el valor es: index.php, así que no puedo leer la página.

Respuesta

18

Esto es lo que se debe utilizar:

RewriteEngine On 
RewriteBase/

SetEnvIf Host ^www\. lang=en 
SetEnvIf Host ^en\. lang=en 
SetEnvIf Host ^fr\. lang=fr 

RewriteCond %{REQUEST_URI} !\.(css|png|gif|jpe?g|js)$ [NC] 
RewriteRule ^([a-z0-9_\-]+)/?$ index.php?lang=%{ENV:lang}&page=$1 [L,NC,QSA] 

El %{ENV:lang} se leerá de la SetEnvIf (desde el sub-dominio) y establezca el idioma correcto que se obtiene de $_GET['lang']; (en su código PHP - asumiendo que es PHP)

De esta manera, cualquiera de los subdominios se cargará dinámicamente sin crear reglas una y otra vez para el subdominio. También agregué una regla que evita cargar imágenes o JavaScript como página.

+0

muchas gracias, cambio algo, pero este trabajo es perfecto. – goblar

+0

bienvenido, me alegro de poder ayudar, gracias –

+4

+1 por usar setenvif – Tech4Wilco

Cuestiones relacionadas