2011-04-13 11 views
8

este es mi código de .htaccess por lo que si el tipo de usuario simplemente domain.com será redirigido a www.domain.com.htaccess: exluce algún dominio en RewriteCond

RewriteBase/
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] 

mi problema ahora es que tengo una nuevo dominio que apunta a la misma ruta de dominio por lo que incluso el nuevo dominio se redirige "de forma transparente" a domain.com ...

¿cómo puedo excluir algún nombre de dominio de esa regla?

gracias!

Respuesta

8

Puede intentar hacer la reescritura genérica, por lo que todas las solicitudes que no comienzan con www son redirigidas, pero en el dominio correcto/solicitado.

RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301] 

O bien, se puede comprobar en lugar de si el dominio comienza con domain.com:

RewriteCond %{HTTP_HOST} ^domain\.com$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com [L,R=301] 

Esperemos que esto ayuda.

+1

Gracias por la gran respuesta. ¿Puedes describir el código parte por parte? Solo el primer código. – Hamidreza

+0

Gran respuesta. Explicar su sintaxis en detalle haría de esto una respuesta excelente. Solo digo. :) –

+0

El OP intentaba redirigir varios dominios a la misma ruta, sin embargo, el 'RewriteCond' original buscaba específicamente un único dominio (por ejemplo, www.dominio.com). Mi primer ejemplo redireccionará cualquier dominio que no comience con 'www.'' en la ruta solicitada con el' www.' antepuesto. El 'RewriteRule' hace esto al usar el primer grupo de la expresión regular en' RewriteCond', esto es lo que logra el '% 1'. '$' se utilizan para hacer referencia a los grupos de la expresión 'RewriteRule', mientras que'% 'se usa para hacer referencia a los grupos de' RewriteCond'. Espero que aclare las cosas. – clmarquart

Cuestiones relacionadas