Foros del Web » Administración de Sistemas » Apache »

[SOLUCIONADO] No poner www en subdominios

Estas en el tema de No poner www en subdominios en el foro de Apache en Foros del Web. Hola a todos!!! Estoy intentando añadir con .htaccess de manera general a cualquier dominio las www: dominio.com --> www.dominio.com , excepto que éste sea un ...
  #1 (permalink)  
Antiguo 17/06/2015, 05:14
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
No poner www en subdominios

Hola a todos!!!

Estoy intentando añadir con .htaccess de manera general a cualquier dominio las www: dominio.com --> www.dominio.com, excepto que éste sea un subdominio: demo.dominio.com que lo tiene que dejar igual.

Navegando, he encontrado varios códigos para hacerlo pero no me funciona ninguno en el servidor, se queda en bucle intentando resolver la petición dejando la pantalla en blanco mientras piensa :( En cambio si lo pruebo en local si que me lo hace O_O

Os pongo los diferentes códigos que he provado a ver si me podéis decir cúal es el problema

Código PHP:
RewriteEngine on
RewriteBase 
/
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} !.([a-z-]+.[a-z]{2,6})$ [NC]
RewriteRule http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
Código PHP:
RewriteEngine on
RewriteBase 
/
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^(.*).(.*). [NC]
RewriteCond %{HTTPS}^on(s)|
RewriteRule HTTP%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
Código PHP:
RewriteEngine on
RewriteBase 
/
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} !^(.*).(.*). [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
Ni siquiera especificando el nombre del dominio funciona ¬_¬'
Código PHP:
RewriteEngine on
RewriteBase 
/
RewriteCond %{HTTP_HOST} !^demo.dominio.com$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
No se me da muy bien el htaccess pero hasta donde se no veo que sean incorrectas estas reglas.

En cambio, lo siguiente me funciona perfectamente, es decir, me añade siempre las www, pero al añadir la línea que no tenga en cuenta si es subdominio no le gusta y se queda todo el rato cargando una y otra vez la página:
Código PHP:
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
Alguien puede ayudarme? Podria ser problema de la configuración del servidor o la estructura de carpetas?
__________________
Perdida en el mundo del conocimiento
  #2 (permalink)  
Antiguo 17/06/2015, 08:26
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: No poner www en subdominios

Debes buscar más en Google:

Código Apache:
Ver original
  1. RewriteEngine On
  2. RewriteCond %{HTTP_HOST} ^[0-9a-zA-Z-]+\.[a-zA-Z]{2,}$
  3. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
  #3 (permalink)  
Antiguo 17/06/2015, 10:04
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Respuesta: No poner www en subdominios

Hola PHPeros!!

Primero quiero darte las gracias por tu respuesta, aún me falta hacer algunas pruebas pero de momento diria que funciona en casi todos los casos, ya que si la url se introduce como: http://dominio.com no la transforma en http://www.dominio.com

El caso es que llevo dos días buscando como una loca y no he visto esa condición en ningún sitio... :( de donde la has sacado? O_O
De verdad, me podrías decir la url donde la has encontrado? o que palabras de búsqueda has utilizado en google?

Por otro lado.... me sabrias decir qu está mal de las expresiones que he puesto yo o pq no me funcionan en el servidor?
__________________
Perdida en el mundo del conocimiento
  #4 (permalink)  
Antiguo 18/06/2015, 08:21
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Respuesta: No poner www en subdominios

Hola!!!

Al final he mezclado el código de PHPeros con el que usaba yo y funciona bien, aquí lo dejo por si a alguien le puede ser de ayuda:

Código PHP:
    RewriteCond %{HTTP_HOST} !^$
    
RewriteCond %{HTTP_HOST} !^www. [NC]
    
RewriteCond %{HTTP_HOST} !^[0-9a-zA-Z-]+.[0-9a-zA-Z-]+.[a-zA-Z]{2,}$ [NC]
    
RewriteCond %{HTTPS}^on(s)|
    
RewriteRule http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
__________________
Perdida en el mundo del conocimiento

Etiquetas: htaccess, mod_rewrite, www
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:35.