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

Directiva RewriteRule - Cambiar carpeta por nombre de dominio

Estas en el tema de Directiva RewriteRule - Cambiar carpeta por nombre de dominio en el foro de Apache en Foros del Web. Hola a todos, Tengo un servidor con tres dominios que ejecutan practicamente siempre los mismos archivos, por lo que me es muy eficiente que con ...
  #1 (permalink)  
Antiguo 21/02/2012, 20:07
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 7 meses
Puntos: 19
Directiva RewriteRule - Cambiar carpeta por nombre de dominio

Hola a todos,

Tengo un servidor con tres dominios que ejecutan practicamente siempre los mismos archivos, por lo que me es muy eficiente que con htaccess dirija a todos los dominios a la misma carpeta. Esto ya lo he conseguido.

El problema es que con las imagenes no me ocurre lo mismo, deseo que cada dominio tenga su propia carpeta en mi servidor, pero siempre usando la misma ruta en todos los dominios.

Por ejemplo:

micasa.com/images/sofa.jpg > /var/www/images/micasa/sofa.jpg
mitrabajo.com/images/contrato.jpg > /var/www/images/mitrabajo/contrato.jpg

¿Esto es posible?.

Actualmente para redirigir las imagenes uso:

Código Apache:
Ver original
  1. RewriteBase /
  2. RewriteEngine On
  3. RewriteRule   ^images/(.*)$ /files/images/$1 [L]

Bufff, quien pueda ayudarme me hara un enorme favor. Este problema lo llevo teniendo desde hace mucho, y nunca consigo solucionarlo. Me he leido un montonazo de manuales y tutoriales de htaccess, pero nunca encuentro la solucion.

:D
  #2 (permalink)  
Antiguo 23/02/2012, 10:45
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Directiva RewriteRule - Cambiar carpeta por nombre de dominio

No termino de entender el problema, supongo que lo que queres es separar las imágenes para tenerlas ordenadas.
A ver si este ejemplo te sirve

por un lado tenes
micasa.com
mitrabajo.com

ambos tienen como raiz (documentRoot)
/var/www

lo primero sería identificar los servidores y en base a esto crear la regla
Código Apache:
Ver original
  1. RewriteCond %{HTTP_HOST} micasa.com
  2. RewriteRule ^images/(.*)$ /imagenes/micasa/$1 [NC,L]
  3.  
  4. RewriteCond %{HTTP_HOST} mitrabajo.com
  5. RewriteRule ^images/(.*)$ /imagenes/mitrabajo/$1 [NC,L]

Pero esto supone que tengas tres index diferentes porque sino mientras ingreses por un dominio va a encontrar la imagen, en los demas no, y viceversa, y tampoco tiene gracia que pongas todas las imágenes en todas las carpetas,

Otro detalle, cuando haces un RewriteRule, la primera parte es una expresión, y la segunda la segunda una ruta a partir de la raiz de tu web, no de la raiz de tu disco, esto
/var/www/images/mitrabajo/contrato.jpg
debería ser
/images/mitrabajo/contrato.jpg
Lo comento por el ejemplo que puisiste



Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 24/02/2012, 16:29
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 7 meses
Puntos: 19
Respuesta: Directiva RewriteRule - Cambiar carpeta por nombre de dominio

Hola emprear,

Me sirve de mucho tu codigo, muchas gracias, lo voy ha usar ahora mismo. Aunque la idea que tenia era mas dinamica.

Queria hacer que no tuviese que editar el htaccess. ¿Es posible?, la verdad es que no consigo relajarme con este codigo, me parece tan misterioso. :P.

Es decir, que cuando intenten entrar a /images/foto.jpg se entre a /images/{nombre del dominio}/foto.jpg . Pero sin indicar en ningun lugar el dominio, que lo haga en todos.

¿Es posible?, siento no haberlo indicado. Me explico mal. Jo!, como me cuesta este lenguaje.
  #4 (permalink)  
Antiguo 24/02/2012, 17:05
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Directiva RewriteRule - Cambiar carpeta por nombre de dominio

Esto que se me ocurre no lo probé, pero si querés podés intentar.
El problema es que solo puede hacerse modificando los archivos de configuración del servidor principal, cosa que solo puede hacer el administrador.También dependerá de tu configuración actual.
Me dijiste que tenes 3 dominios apuntando a una misma raiz, que www

si tuvieses esto

ServerName trabajo.com
Serveralias casa.com
no se puede, pero si tenes

<virtualHost>
ServerName trabajo.com
DocumentRoot /var/www/
</virtualHost

<virtualHost>
ServerName casa.com
DocumentRoot /var/www/
</virtualHost>

podrias hacer
Código Apache:
Ver original
  1. <virtualHost>
  2. ServerName trabajo.com
  3. DocumentRoot /var/www/
  4. Alias /images "/var/www/trabajo"
  5. </virtualHost
  6.  
  7. <virtualHost>
  8. ServerName casa.com
  9. DocumentRoot  /var/www/
  10. Alias /images "/var/www/casa"
  11. </virtualHost>

De todas maneras te aclaro que eso que te parece complejo y tedioso (modRewrite), es una funcionalidad de Apache que tiene un poder "descomunal"... y esta para cosas como las que querés hacer.

Algo, en alguna parte tendrás que editar, y desde ya estudiar y aprender. Y tené cuidado que el código que puse es solo un ejemplo simplificado
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 25/02/2012, 20:52
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 7 meses
Puntos: 19
Respuesta: Directiva RewriteRule - Cambiar carpeta por nombre de dominio

Ok! muchas muchas gracias.

Etiquetas: directiva, dominio, nombre, red, rewrite, rewriterule, servidor, carpetas
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 13:42.