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

Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip Apache

Estas en el tema de Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip Apache en el foro de Apache en Foros del Web. Buenas, Necesito acceder desde 2 urls principales diferentes a 2 modulos de mi aplicacion y no se como hacerlo exactamente. He intentando crear "virtual hosts", ...
  #1 (permalink)  
Antiguo 21/03/2012, 03:08
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 3 meses
Puntos: 0
Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip Apache

Buenas,

Necesito acceder desde 2 urls principales diferentes a 2 modulos de mi aplicacion y no se como hacerlo exactamente.
He intentando crear "virtual hosts", tengo xampp, pero luego no me funcionaba el mod rewriting para capturar cada url y lanzar el archivo index.
Modifico el archivo httpd-vhosts.conf

Código:
NameVirtualHost *:80

<VirtualHost miweb.com:80>
DocumentRoot "d:/webs/miweb/publica/"
ServerName miweb.com
ServerAdmin [email protected]
<Directory "d:/webs/miweb/publica/">
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
#Más directivas de configuración de Apache

   </Directory>
</VirtualHost>

<VirtualHost gestionmiweb.com:80>
DocumentRoot "d:/webs/miweb/privada/"
ServerName gestionmiweb.com
ServerAdmin [email protected]
<Directory "d:/webs/miweb/privada/">
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
#Más directivas de configuración de Apache

   </Directory>
</VirtualHost>
En el archivo hosts de windows añadi la siguiente linea tambien
Código:
127.0.0.1 miweb.com
127.0.0.1 gestionmiweb.com
El virtual hosts si funcionaba, lo comprobe añadiendo un archivo html en "d:/webs/miweb/publica/" y accediendo a el de la manera "miweb.com/prueba.htm" y me cargo el archivo.

Pero mi problema es el siguiente:

Mi aplicacion funciona capturando la url ( como funcionan algunos frameworks, capturando la peticion url, y desgranandola en partes para lanzar el correspondiente controlador->metodo(parametros) ) con mod_rewriting y lanzando un fichero index.php.
Tengo un archivo .htaccess en "d:/webs/miweb/publica/" que contiene
Código:
RewriteEngine On
RewriteRule (.*)$ indice.php?enlace=$1 [QSA,L]
Pero no he logrado que funcione, no me captura las urls que escribo y lanza correctamente como me lo hacia antes cuando lo tenia en la carpeta htdocs de xampp. Sin embargo, el virtual host si que me funciona, por lo que ya dije.


Necesito ayuda urgente, llevo varios días rayandome con esto y no encuentro la solución, estoy atascado y perdiendo mucho tiempo.

Muchas gracias.


PD:
Yo antes lo tenia de la siguiente forma:

Mi aplicacion en una carpeta llamada "miweb" en la carpeta htdocs de xampp.
En la carpeta htdocs un archivo .htaccess con la siguiente informacion
Código:
RewriteEngine On
RewriteRule miweb(.*)$ miweb/publica/indice.php?enlace=$1 [QSA,L]
RewriteRule gestionmiweb(.*)$ miweb/privada/indice.php?enlace=$1 [QSA,L]
y claro, las urls eran de la forma "localhost/miweb/inicio" o "localhost/gestionmiweb/productos/.." y yo lo que quiero es tenerlos como sitios distintos accediendo de la forma "miweb.com/" y "gestionmiweb.com/"

Última edición por chemajmb; 21/03/2012 a las 08:41
  #2 (permalink)  
Antiguo 21/03/2012, 09:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip

Tanto en <Directory "d:/webs/miweb/publica/">, como en <Directory "d:/webs/miweb/privada/"> necesitas poner el AllowOverride en All para que te funcionen los .htaccess.

Saludos.
  #3 (permalink)  
Antiguo 21/03/2012, 10:29
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip

Por informacion que estuve leyendo, supuse que se podia escribir el codigo htaccess en la directiva <directory> asi que he escrito el codigo ahi y no tengo archivos .htaccess en los directorios. Ademas he conseguido hacer que me funcione.

En el archivo de virtual hosts tengo ...
Código:
<VirtualHost *:80>
ServerName "gestionmiweb.com"
DocumentRoot "d:/webs/miweb/privada/"
ServerAdmin [email protected]
#ServerAlias www.gestionmiweb.com
	<Directory "d:/webs/miweb/privada/">
	Options Indexes FollowSymLinks
	Order allow,deny
	Allow from all
	#Más directivas de configuración de Apache
	RewriteEngine On
	#RewriteCond %{REQUEST_FILENAME} !-d
	#RewriteCond %{REQUEST_FILENAME} !-f
	#RewriteCond %{REQUEST_FILENAME} !-l
	RewriteRule \.(gif|jpg|js|css|swf|png)$ - [L]
	RewriteRule (.*)$ indice.php?enlace=$1 [QSA,L]
	</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName "miweb.com"
DocumentRoot "d:/webs/miweb/publica/"
ServerAdmin [email protected]
#ServerAlias www.miweb.com
	<Directory "d:/webs/miweb/publica/">
	Options Indexes FollowSymLinks
	Order allow,deny
	Allow from all
	#Más directivas de configuración de Apache
	RewriteEngine On
	#RewriteCond %{REQUEST_FILENAME} !-d
	#RewriteCond %{REQUEST_FILENAME} !-f
	#RewriteCond %{REQUEST_FILENAME} !-l
	RewriteRule \.(gif|jpg|js|css|swf|png)$ - [L]
	RewriteRule (.*)$ indice.php?enlace=$1 [QSA,L]
	</Directory>
</VirtualHost>
Si me surge algun problema gordo me paso por aqui, muchas gracias.

Si quereis dejarme algunos consejos de configuracion de .htaccess o algun otro, estaria muy agradecido me los hicierais saber.

Un saludo, muchas gracias.
  #4 (permalink)  
Antiguo 21/03/2012, 13:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip

Claro que se puede, pero es mucho más cómodo que actives el AllowOverride ya que así puedes ponerlo en los .htaccess y no tienes que reiniciar el servidor de Apache para que tome en cuenta las directivas.

Saludos.
  #5 (permalink)  
Antiguo 21/03/2012, 14:21
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip

Tampoco podés poner "cualquier cosa" en cualquier parte.... para cada directiva en particular consulta la documentación de apache (para la versión que estés usando) y fijate al inicio de los detalles de las mismas los valores admitidos para "Context"

Ejemplo, para
IndexOrderDefault Directive
Context: server config, virtual host, directory, .htaccess


Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 22/03/2012, 09:44
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip

Cita:
Iniciado por GatorV Ver Mensaje
Claro que se puede, pero es mucho más cómodo que actives el AllowOverride ya que así puedes ponerlo en los .htaccess y no tienes que reiniciar el servidor de Apache para que tome en cuenta las directivas.

Saludos.
Muchas gracias por el consejo.

Cita:
Iniciado por emprear Ver Mensaje
Tampoco podés poner "cualquier cosa" en cualquier parte.... para cada directiva en particular consulta la documentación de apache (para la versión que estés usando) y fijate al inicio de los detalles de las mismas los valores admitidos para "Context"

Ejemplo, para
IndexOrderDefault Directive
Context: server config, virtual host, directory, .htaccess


Saludos
am, ajam, osea que cada directiva solo puede usarse en unos contextos especificos, ok ok, consejo muy valioso tambien.

Estuve a punto de responderte ¿ en que idioma me estas hablando ? por que no te entendia, pero creo que finalmente te entendi, gracias por el consejo tambien.

Un saludo, hasta pronto.
  #7 (permalink)  
Antiguo 26/03/2012, 07:08
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip

Hola amigos,
Tengo el siguiente problema en la configuracion de mi servidor apache. Cuando intento acceder a la url "miweb.com/" me accede a "gestionmiweb.com"
¿ Que tengo que cambiar en mi archivo httpd-vhosts.conf ? ¿ o que tengo que hacer para solucionarlo ? ¿ es que solo se puede tener un virtual host ? ¿ como hago para tener varios ? El problema es que siempre me accede al que tengo primero en el archivo httpd-vhosts.conf.

Código:
<VirtualHost *:80>
ServerName "gestionmiweb.com"
DocumentRoot "d:/webs/miweb/privada/"
ServerAdmin [email protected]
#ServerAlias www.gestionmiweb.com
	<Directory "d:/webs/miweb/privada/">
	Options Indexes FollowSymLinks
	Order allow,deny
	Allow from all
	#Más directivas de configuración de Apache
	RewriteEngine On
	#RewriteCond %{REQUEST_FILENAME} !-d
	#RewriteCond %{REQUEST_FILENAME} !-f
	#RewriteCond %{REQUEST_FILENAME} !-l
	RewriteRule \.(gif|jpg|js|css|swf|png)$ - [L]
	RewriteRule (.*)$ indice.php?enlace=$1 [QSA,L]
	</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName "miweb.com"
DocumentRoot "d:/webs/miweb/publica/"
ServerAdmin [email protected]
#ServerAlias www.miweb.com
	<Directory "d:/webs/miweb/publica/">
	Options Indexes FollowSymLinks
	Order allow,deny
	Allow from all
	#Más directivas de configuración de Apache
	RewriteEngine On
	#RewriteCond %{REQUEST_FILENAME} !-d
	#RewriteCond %{REQUEST_FILENAME} !-f
	#RewriteCond %{REQUEST_FILENAME} !-l
	RewriteRule \.(gif|jpg|js|css|swf|png)$ - [L]
	RewriteRule (.*)$ indice.php?enlace=$1 [QSA,L]
	</Directory>
</VirtualHost>
Gracias por la ayuda.
  #8 (permalink)  
Antiguo 26/03/2012, 10:59
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip

Algunas aclaraciones, como no estoy viendo toods tus archivos de configuración voy a suponer algunas cosas, y la explicación que te dé se aplica para trabajar en local con varios subdominios/dominios

Asegurate que en httpd-vhosts.conf esté habilitado
NameVirtualHost *:80

No uses la extensión .com (recomendación), usa una inexistente para asegurarte que no va a haber conflictos, yo uso por ejemplo .loc
No pongas directivas mod_rerwite en los virtualhosts (recomendación), usa .htaccess para eso

Conviene siempre definir como primer virtual host, el del servidor principal que trae por defecto apache, ejemplo

Código Apache:
Ver original
  1. NameVirtualHost *:80
  2. <VirtualHost *:80>
  3. ServerName localhost
  4. DocumentRoot "d:/apache2/htdocs/"
  5.     <Directory "d:/apache2/htdocs/">
  6.     Options Indexes FollowSymLinks
  7.     Order allow,deny
  8.     Allow from 127.0.0.1
  9.     </Directory>
  10. </VirtualHost>
  11. <VirtualHost *:80>
  12. ServerName "gestionmiweb.loc"
  13. DocumentRoot "d:/webs/miweb/privada/"
  14. ServerAdmin [email protected]
  15.     <Directory "d:/webs/miweb/privada/">
  16.     Options Indexes +FollowSymLinks
  17.     Order allow,deny
  18.     Allow from all
  19.                AllowOverride All
  20.     </Directory>
  21. ErrorLog logs/error-gestionmiweb.txt
  22. CustomLog "logs/gestionmiweb-access.txt" combined
  23. </VirtualHost>
  24.  
  25. <VirtualHost *:80>
  26. ServerName "miweb.loc"
  27. DocumentRoot "d:/webs/miweb/publica/"
  28. ServerAdmin [email protected]
  29.     <Directory "d:/webs/miweb/publica/">
  30.     Options Indexes FollowSymLinks
  31.     Order allow,deny
  32.     Allow from all
  33.                AllowOverride All
  34.     </Directory>
  35. ErrorLog logs/error-miweb.txt
  36. CustomLog "logs/miweb-access.txt" combined
  37. </VirtualHost>

Finalmente es necesario agregar las entradas al archivo de hosts de windows para que funcionen a manera de Dns, es decir, editas
/windows/system32/drivers/etc/hosts y dentro. a la entrada
127.0.0.1 localhosts
agregás una nueva por linea para cada hosts virtual
ej:
127.0.0.1 gestionmiweb.loc
127.0.0.1 miweb.loc

y asi con el resto

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 27/03/2012 a las 13:51 Razón: corrección Allow x Alow
  #9 (permalink)  
Antiguo 26/03/2012, 12:41
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip

Cita:
Iniciado por emprear Ver Mensaje
Algunas aclaraciones, como no estoy viendo toods tus archivos de configuración voy a suponer algunas cosas, y la explicación que te dé se aplica para trabajar en local con varios subdominios/dominios

Asegurate que en httpd-vhosts.conf esté habilitado
NameVirtualHost *:80

Si, si que lo tenia habilitado

No uses la extensión .com (recomendación), usa una inexistente para asegurarte que no va a haber conflictos, yo uso por ejemplo .loc
No pongas directivas mod_rerwite en los virtualhosts (recomendación), usa .htaccess para eso

ok, asi lo he hecho compañero

Conviene siempre definir como primer virtual host, el del servidor principal que trae por defecto apache, ejemplo

Código Apache:
Ver original
  1. NameVirtualHost *:80
  2. <VirtualHost *:80>
  3. ServerName localhost
  4. DocumentRoot "d:/apache2/htdocs/"
  5.     <Directory "d:/apache2/htdocs/">
  6.     Options Indexes FollowSymLinks
  7.     Order allow,deny
  8.     Allow from 127.0.0.1
  9.     </Directory>
  10. </VirtualHost>
  11. <VirtualHost *:80>
  12. ServerName "gestionmiweb.loc"
  13. DocumentRoot "d:/webs/miweb/privada/"
  14. ServerAdmin [email protected]
  15.     <Directory "d:/webs/miweb/privada/">
  16.     Options Indexes +FollowSymLinks
  17.     Order allow,deny
  18.     Allow from all
  19.                AlowOverride All
  20.     </Directory>
  21. ErrorLog logs/error-gestionmiweb.txt
  22. CustomLog "logs/gestionmiweb-access.txt" combined
  23. </VirtualHost>
  24.  
  25. <VirtualHost *:80>
  26. ServerName "miweb.loc"
  27. DocumentRoot "d:/webs/miweb/publica/"
  28. ServerAdmin [email protected]
  29.     <Directory "d:/webs/miweb/publica/">
  30.     Options Indexes FollowSymLinks
  31.     Order allow,deny
  32.     Allow from all
  33.                AlowOverride All
  34.     </Directory>
  35. ErrorLog logs/error-miweb.txt
  36. CustomLog "logs/miweb-access.txt" combined
  37. </VirtualHost>

Finalmente es necesario agregar las entradas al archivo de hosts de windows para que funcionen a manera de Dns, es decir, editas
/windows/system32/drivers/etc/hosts y dentro. a la entrada
127.0.0.1 localhosts
agregás una nueva por linea para cada hosts virtual
ej:
127.0.0.1 gestionmiweb.loc
127.0.0.1 miweb.loc

y asi con el resto

Saludos
He sacado el codigo mod_rewriting a archivos .htaccess pero no me arranca el servicio apache.

o.o ¿ A que se puede deber ?
  #10 (permalink)  
Antiguo 26/03/2012, 13:31
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip

ejecutá httpd.exe -t ó httpd.exe -S(en la carpeta Apache/bin) desde la linea de comandos. Seguramente hay un error de sintáxis.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #11 (permalink)  
Antiguo 26/03/2012, 15:32
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip

Cita:
Iniciado por emprear Ver Mensaje
ejecutá httpd.exe -t ó httpd.exe -S(en la carpeta Apache/bin) desde la linea de comandos. Seguramente hay un error de sintáxis.

Saludos
Eres el puto amo junto a toda la gente que comparte conocimientos y ayuda en este foro y tambien en el resto de internet.
Gracias, ojala yo algun dia pueda ayudar tambien a otros.

Un saludo, nos vemos por aqui.
  #12 (permalink)  
Antiguo 26/03/2012, 15:34
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip

Pero lo arreglaste?????
Que era?


__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #13 (permalink)  
Antiguo 26/03/2012, 16:07
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip

Si, hice copy paste y pegue AlowOverride con una unica l en Allow. Con el comando ese de Apache me mostro el error.

Gracias una vez mas.

¿ Puedes decirme algunos consejos o al menos enumerarme que cosas deberia mirar por internet para configurar mis archivos .htaccess por favor ? Me refiero a conceptos como por ejemplo prevenir el hotlinking o temas de seguridad.

De momento tengo los archivos asi
Código:
#Options +FollowSymLinks
RewriteEngine On
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule \.(gif|jpg|js|css|swf|png)$ - [L]
RewriteRule (.*)$ indice.php?enlace=$1 [QSA,L]
Mirare por internet para proteger algunas cosas importantes, pero si me las puedes enumerar tu o cualquiera ahora, estaria genial.

Gracias.
  #14 (permalink)  
Antiguo 26/03/2012, 16:17
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Configurar Virtual hosts - Mod_rewriting - tener varios sitios - misma ip

Probablemente una de las mejores webs sea
http://www.askapache.com/
En particular mirá el tema
http://www.askapache.com/htaccess/htaccess.html

Y por supuesto, El manual de Apache
http://httpd.apache.org/docs/
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: hosts, htaccess, html, ip, php, rewrite, tener, url, virtual
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 12:50.