Cómo alias un nombre de host en Mac OSX

24

En pocas palabras, me gustaría poder abrir un navegador y abrirlo, local.example.compero en realidad se cargahttp://localhost/path/to/example.com/

Estoy usando Mac OSX 10.5, y no tengo miedo de ensuciarme las manos con el terminal :)

Yo uso Apache como mi servidor local.

Austin Hyde
fuente
¿Está intentando publicar páginas web en el mundo exterior o solo espera que la URL local.example.com funcione para su máquina?
Stephen Jennings
Solo para mi propia máquina. Se vuelve aburrido escribir / recordar la ruta completa del archivo a mi copia local de los sitios web en los que estoy trabajando.
Austin Hyde

Respuestas:

31

Para ser claros, baso esto en el supuesto de que realmente quieres que http://local.example.com cargue la página web literal http: //localhost/path/to/example.com . En otras palabras, esto solo funcionará para esta máquina. Si, por otro lado, está tratando de servir páginas web al mundo exterior utilizando su máquina Mac OS X, entonces esa es una pregunta diferente.

Primero, agregue una nueva línea a su /etc/hostsarchivo:

127.0.0.1   local.example.com

Puede hacer esto ejecutando el comando sudo nano /etc/hosts, agregue esta línea al final, luego guárdela presionando Ctrl-X, Y.

La forma en que realmente redirige / alias la dirección http://local.example.com a http: //localhost/path/to/example.com/ depende del servidor web que esté utilizando. Asumiendo que estás usando Apache:

Si desea que el navegador del usuario muestre local.example.com, entonces desea configurar un host virtual y su httpd.confarchivo debe tener algo como lo siguiente:

<VirtualHost *:80>
ServerName local.example.com
DocumentRoot /www/path/to/example.com
</VirtualHost>

Si, por otro lado, desea que la barra de ubicación del navegador web cambie a http: //localhost/path/to/example.com/ , en su lugar, querrá usar mod_rewrite para crear una redirección :

RewriteCond %{HTTP_HOST}   !^local\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/?(.*)         http://localhost/path/to/example.com/$1 [L,R,NE]
Stephen Jennings
fuente
Sin embargo
John T
@ John tienes razón, arreglado.
Stephen Jennings
Si el "alias" deseado fuera https://localhost/path/to/example.com, es decir HTTPS, no HTTP, ¿se aplicaría esta solución?
Kevin Meredith
@KevinMeredith eso no es posible. El navegador tiene que saber que está hablando HTTPS. Podría ser posible con una redirección HTTP 302, que en Apache se llama Redirect. httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect
Beetle
Sin embargo
Jonathan Neufeld