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

[SOLUCIONADO] Añadir www con .htaccess

Estas en el tema de Añadir www con .htaccess 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, 02:55
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años, 7 meses
Puntos: 0
Añadir www con .htaccess

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, se queda en bucle intentando resolver la petición dejando la pantalla en blanco mientras piensa :(

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

Código PHP:
  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:
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:
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:
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.

Alguien puede ayudarme?
__________________
Perdida en el mundo del conocimiento
  #2 (permalink)  
Antiguo 17/06/2015, 03:45
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 11 años, 6 meses
Puntos: 10
Respuesta: Añadir www con .htaccess

Tampoco se mucho de htaccess pero a mi me funciona con esto

Código BASH:
Ver original
  1. RewriteEngine on
  2.  
  3. RewriteBase /
  4.  
  5. RewriteCond %{HTTPS} !on
  6.  
  7. RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Yo lo empleo para redireccionar https .... deberia funcionar para el www tambien
Lo que no se en tu caso .... cual seria la condicion RewriteCond corecta
voy a probar y edito

He probado lo tuyo y funciona en mi caso con esto:
Código BASH:
Ver original
  1. RewriteEngine on
  2. RewriteBase /
  3. RewriteCond %{HTTP_HOST} !^http://www.*$
  4. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Yo creo que la condicion que intentaste tu no era correcta
!^www. [NC] ---- > !^http://www.*$

RewriteEngine on es para asegurarte que tienes encendido el mod_rewrite de apache

de todos modos esto lo solucionas mejor en el foro de Apache aqui estamos en PHP
hay otros temas parecidas en dicho foro
http://www.forosdelweb.com/f58/redireccion-www-1128613/

Última edición por matake; 17/06/2015 a las 04:22
  #3 (permalink)  
Antiguo 17/06/2015, 04:27
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Añadir www con .htaccess

Hola matake!!

Gracias por contestar!

El RewriteEngine ya lo tengo on y el rewriteBase lo tenía puesto pero después de estas instrucciones ¬¬' de todas formas lo he puesto antes y tampoco me funciona.

Sobre lo que comentas de !^www.... Haciendo lo siguiente si que funciona
Código PHP:
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
Con estas líneas me pone las www delante del dominio, pero claro, me lo pone siempre y yo lo que necesito es que si es un subdominio no lo haga. Es decir, que me lo ponga si es con la estructura: dominio.com y qu eno me ponga las www. si es de la estructura: demo.dominio.com. Por eso he añadido a la instrucción de antes la línea:

Código PHP:
RewriteCond %{HTTP_HOST} !.([a-z-]+.[a-z]{2,6})$ [NC
Pero me hace lo que he comentado, crea un bucle y no me carga la página.
__________________
Perdida en el mundo del conocimiento
  #4 (permalink)  
Antiguo 17/06/2015, 04:53
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Añadir www con .htaccess

OK!!! y como puedo mover la pregunta al foro de Apache?
__________________
Perdida en el mundo del conocimiento
  #5 (permalink)  
Antiguo 17/06/2015, 07:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Añadir www con .htaccess

Cita:
Iniciado por SUSMO Ver Mensaje
OK!!! y como puedo mover la pregunta al foro de Apache?
Ya he reportado tu tema para que lo muevan.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 17/06/2015, 10:16
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Añadir www con .htaccess

Gracias pateketrueke
__________________
Perdida en el mundo del conocimiento
  #7 (permalink)  
Antiguo 18/06/2015, 08:24
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Añadir www con .htaccess

Hola!!!

Con la aportación de un compañero del foro, PHPeros, he encontrado la solución:

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, php, rewritecond, rewriterule, 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 10:40.