Cómo atender la condición www en mi htaccess

Tengo las reglas de reescritura actuales.

RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^$ /s/index.php?s=%1 [L]

Básicamente, lo que esto hace es que apunta test.domain.com a www.domain.com/s/index.php?s=test .

La segunda línea de código es para evitar que www.domain.com apunte a /s/index.php... (Este es mi sitio principal)

Sin embargo, las reglas y el código anteriores no funcionan para www.test.domain.com.

Quiero que tanto test.domain.com como www.test.domain.com apunten a www.domain.com/s/index.php?s=test.

preguntado el 22 de mayo de 12 a las 19:05

¿Qué quieres decir con "señalar a ambos"? -

1 Respuestas

Prueba esto:

RewriteCond %{HTTP_HOST} ^(www.)?([^\.]+)\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\.domain.com [NC]
RewriteRule ^$ http://www.domain.com/s/index.php?s=%2 [L,QSA]

contestado el 22 de mayo de 12 a las 19:05

Gracias por el código, ¿puedo saber cuál es el propósito de ^(www.)? - Matar

Comprueba la existencia de www al principio, lo consume si existe y asigna la parte posterior a %1. La segunda condición verifica su excepción (www.domain.com). - Ansari

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.