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

poner www con htaccess

Estas en el tema de poner www con htaccess en el foro de Apache en Foros del Web. Hola a todos, Tengo que hacer que en una página web, cuando accedan los usuarios a la url sin las 3 w, las ponga automáticamente. ...
  #1 (permalink)  
Antiguo 01/02/2011, 10:06
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años, 7 meses
Puntos: 0
poner www con htaccess

Hola a todos,

Tengo que hacer que en una página web, cuando accedan los usuarios a la url sin las 3 w, las ponga automáticamente.
He estado investigando y he visto que esto se hace mediante instrucciones en .htaccess
El caso es que la web que estoy tocando no la hice yo y en su día crearon ya un htaccess el cual no me queda muy claro que hace.

En el htaccess tengo esto:
Código Apache:
Ver original
  1. <ifmodule mod_rewrite.c>
  2. RewriteEngine On
  3. RewriteCond %{REQUEST_FILENAME} !-d
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteRule ^/?(.*)$ archivo.php?PATH_INFO=$1 [QSA]
  6. </ifmodule>

Por lo que he podido pillar lo que hace es que la url la mapea de tal forma que se envie lo que hay en ella a archivo.php como parámetro path_info pero no se para que sirven las condiciones %{REQUEST_FILENAME} !-d ni %{REQUEST_FILENAME} !-f

Por otro lado he encontrado este ejemplo que hace que ponga las www al inicio de la url:
Código Apache:
Ver original
  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteCond %{HTTP_HOST} !^www.midominio.com$ [NC]
  4. RewriteRule ^(.*)$ http://www.midominio.com/$1 [L,R=301]

He intentado unirlos los dos pero no hay manera de que me funcione, además que no puedo escribir el nombre de mi dominio, ya que este puede variar y no se como hacerlo ésto.

He estado buscando tutoriales de .htaccess pero no he encontrado ninguno que me ayude ni me explique que es %{REQUEST_FILENAME} o %{HTTP_HOST} o como hacer que para que me haga los dos rewriteRule en uno solo, ya que entiendo que al ser una redirección no pueden haber dos seguidas.

¿Alguien puede ayudarme o indicarme un buen tutorial para saber hacerlo?
__________________
Perdida en el mundo del conocimiento
  #2 (permalink)  
Antiguo 01/02/2011, 13:48
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: poner www con htaccess

Hola,

una cosa importante, el nombre del dominio no puede variar, este código es para ponerlo en un .htaccess y el .htaccess es para 1 dominio concreto.

Por otro lado, si puedes fusionar ambos código, pero no es necesario que repitas en el 2º el
RewriteEngine On

Por último creo que puede ser un error en el código por lo que no te funcione, ya que en el RewriteCond tienes que escapar los . que actúan como caracteres especiales, fíjate como se hace aquí: http://www.aquihaydominios.com/blog/forzar-www-usando-htaccess


Prueba y ve contándonos que tal.

Saludos
  #3 (permalink)  
Antiguo 02/02/2011, 04:45
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: poner www con htaccess

Hola eduk2,

Muchas gracias por tu respuesta.

Respecto a lo que me refería del dominio, era que se pudiera hacer algo así:
Código Apache:
Ver original
  1. Opciones + FollowSymLinks
  2. RewriteEngine on
  3. RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
  4. RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]
Este código lo he encontrado esta mañana, sólo que hace lo contrario de lo que yo quiero, le quita las www, yo lo he unido al que tenía y lo he adaptado a lo contrario pero no me funciona :(

El htaccess queda así:
Código Apache:
Ver original
  1. <ifmodule mod_rewrite.c>
  2. Options +FollowSymLinks
  3. RewriteEngine On
  4.  
  5. RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
  6. RewriteRule ^(.*)$ http://www\.\%1/$1 [R=301,NC,L]
  7.  
  8. RewriteCond %{REQUEST_FILENAME} !-d
  9. RewriteCond %{REQUEST_FILENAME} !-f
  10.  
  11. RewriteRule ^/?(.*)$ archivo.php?PATH_INFO=$1 [QSA]
  12. </ifmodule>

Si he entendido bien el funcionamiento de las instrucciones, primero mira si la url no tiene las 3 w, si no las tiene las pone y hace un redirección permanente (301). La L hace que no siga ejecutando las siguientes instrucciones por lo que ya me iria bien.
Entonces deberia cargarse la página otra vez con las 3 www, no ejecutaria el código de la condición de las 3 w (pq ya las tendría puestas) y haria el código que ya tenía el htaccess inicialmente, que si no es un fichero ni directorio envía los datos de la url a archivo.php pasándoselo a la variable path_info.

¿Es correcto esta deducción? ¿Que he hecho mal?
__________________
Perdida en el mundo del conocimiento

Etiquetas: htaccess, poner, 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 01:07.