miércoles, 1 de mayo de 2013

Apache - Alias: redirecciones URLs

mod_Alias; es un modulo que viene activado por defecto en el servidor Apache, esta creado para asociar una parte del sistema a otra parte totalmente distinta del sistema o para redireccionar URLs.

En resumen Alias es una directiva que permite asociar una ruta (carpeta) a otra (carpeta) del sistema de archivos

Sintaxis :

Alias /nombre "ruta o path"

====================================================
Ejemplo: Alias  /diego /home/diego/public_html

/localhost/home/diego/public_html es igual a /localhost/diego
====================================================



Crear Alias

Vamos a crear un Alias de la carpeta /diego que hace referencia a la carpeta /home/diego/public_html

1- En webmin nos dirigimos al Menú Servidores > Servidor Web Apache



2- Nos dirigimos a la pestaña Global configuration > Servidor Virtual



3- Hacemos clic en el icono  Configure Apache Modules



4- Buscamos el modulo alias, por defecto dicho modulo viene instalado y activado, en caso de no estar activado lo seleccionamos marcando con el símbolo y mas abajo pulsamos en Enable Selected Modules





5- Ahora pulsamos en Existing virtual hosts



6- y nos a nuestro Servidor Virtual



7- Hacemos clic en el icono Alias y Redireccionamientos




8- Primero escribimos el alias del directorio. empezando y terminado en barra invertida /,
    Segundo escribimos la ruta real del directorio
    Tercero pulsamos en Salvar.



9- Al pulsar en salvar nos manda a la siguiente ventana en la cual nos queda aplicar los cambios, para que estos surtan efectos.




10- Ahora vamos a probar que la configuración ha sido la correcta. Para ello nos dirigimos a un navegador web e introducimos el alias creados. En este manual observamos como ha funcionado perfectamente.






 


=========================================================================


Configurar Alias desde consola modo texto


Vamos a realizar el mismo proceso pero en modo texto. Vamos a crear el alias:
Alias  /diego /home/diego/public_html


1- lanzamos una consola virtual, por ejemplo konsole



2- nos logeamos como usuario administrador (root) usando el comando su



3- nos dirigimos a la siguiente ruta: /etc/apache2/sites-available



4- editamos el fichero default, con el siguiente comando: nano default



5- nos vamos al final del fichero antes de la ultima línea que dice
y añadimos el alias escribiendo la siguiente línea: Alias /diego "/home/diego/public_html"




6- pulsamos la combinación de teclas: Control (Ctrl) + O y pulsamos intro y acto seguido pulsamos la combinación de teclas: Control (Ctrl) + X y pulsamos intro



7- ahora tenemos que reiniciar el servidor web apache con el siguiente comando: /etc/init.d/apache2 restart



si todo a ido bien al reiniciar el servidor nos muestra la palabra OK.












.

7 comentarios:

fede dijo...

Hola,
en el ejemplo grafico, ¿¿tambien puedo acceder a la carpeta mediante la ruta localhost/home/diego/public_html(en lugar de localhost/diego) o esa ruta queda "invalida"(y solo puedo acceder mediante el alias creado)??

Gracias, saludos:D

Usuario_Debian dijo...

Hola Fede.

El alias no es mas que un sobrenombre o nombre mas corto y/o mas fácil de recordar. El Alias NO invalida o NO anula la dirección real.

En el ejemplo, podemos acceder a la misma carpeta usando cualquiera de los das direcciones:

- /localhost/home/diego/public_html
- /localhost/diego

Es decir el alias no es mas que una opción mas para llegar a la misma url.

Saludos

fede dijo...

Esque estoy trabajando con la directiva ScriptAlias en Apache y cuando accedo al script mediante el alias todo correcto pero si utilizo el "realname" me da un error 500

Gracias por tu respuesta usuariodebian:D, saludos

Usuario_Debian dijo...

Hola Fede.

Crear los alias tiene dos motivos reales de usos:

1- porque quieres recordar una url difícil de recordar por una mas fácil de recordar

2- porque has habilitado el modulo "userdir" en apache, con lo cual cada usuario del sistema tendra asignada su propia carpeta public_html donde alojar sus páginas web.

En el caso del punto 2. para acceder con el nombre real, Si ahora introducimos la dirección localhost/~diego (observemos la virgulilla, es necesaria añadirla para que funcione perfecta), vemos que el servidor funciona y responde perfectamente.

Tu error esta en que quieres acceder a la dirección public_html del usuario por ejemplo diego con la siguiente url:

/localhost/home/diego/public_html

Cuando lo correcto es acceder con la siguiente url:

/localhost/~diego

Saludos

fede dijo...

Hola usuariodebian,
supongo que el modulo userdir solo tiene sentido en linux, y NO en windows(donde estoy trabajando), asi que no lo tengo cargado en mi apache

veras tengo el sgte alias creado en mi apache:
ScriptAlias /cgi-bin/ "C:/Archivos de programa/Apache Group/Apache2/cgi-bin/"

accedo a los scripts mdte la ruta:
http://localhost:8080/cgi-bin/test.cgi
pero tambien quisiera(y me parece logico como dijiste en tu post) acceder con esta otra(aunque no me funciona):
http://localhost:8080/C:/Archivos%20de%20programa/Apache%20Group/Apache2/cgi-bin/test.cgi

Usuario_Debian dijo...

Hola fede.

Te respondo a tu ultima duda:

Tu dices:
supongo que el modulo userdir solo tiene sentido en linux, y NO en windows(donde estoy trabajando), asi que no lo tengo cargado en mi apache

Yo respondo:
Apache2 en windows también soporta el modulo/directiva "userdir". Para ver como instalarlo y configurarlo es tan fácil como ir a google y buscar un poquito. Pues yo no doy soporte para windows solo para Debian y derivados.

Tu dice:
veras tengo el sgte alias creado en mi apache:
ScriptAlias /cgi-bin/ "C:/Archivos de programa/Apache Group/Apache2/cgi-bin/"

accedo a los scripts mdte la ruta:
http://localhost:8080/cgi-bin/test.cgi
pero tambien quisiera(y me parece logico como dijiste en tu post) acceder con esta otra(aunque no me funciona):
http://localhost:8080/C:/Archivos%20de%20programa/Apache%20Group/Apache2/cgi-bin/test.cgi

Yo respondo:
Te aconsejo que leas un manual de apache2, para que aprendas como se instala los modulos/directivas apache2, como se crean los Alias, como se sirven las páginas web, y por tanto como ser crea las url en tu servidor. Y muchas cosas mas que te interesaran muchísimo. te animo que te bajes el manual de apache2 o que lo leas en línea directamente de la web oficial: Manual de Apache2

Saludos

fede dijo...

mi duda no se refiere a los modulos, ni a como cargarlos, sino a porke no me admite esa segunda forma de acceso si las dos son equivalentes.

De todas formas gracias por tus respuestas y por los enlaces que me indikas, los leere........gracias usuariodebian, saludos:D