Como alias um nome de host no Mac OSX

24

Em poucas palavras, eu gostaria de poder abrir um navegador e abrir, local.example.commas ele realmente carregahttp://localhost/path/to/example.com/

Estou usando o Mac OSX 10.5 e não tenho medo de sujar as mãos com o terminal :)

Eu uso o Apache como meu servidor local.

Austin Hyde
fonte
Você está tentando veicular páginas da Web para o mundo exterior ou espera apenas que o URL local.example.com funcione em sua máquina?
Stephen Jennings
Apenas para minha própria máquina. Fica cansativo digitando / lembrando o caminho completo do arquivo na minha cópia local dos sites em que estou trabalhando.
Austin Hyde

Respostas:

31

Só para esclarecer, estou baseando isso na suposição de que você realmente deseja que o http://local.example.com carregue a página literal da web http: //localhost/path/to/example.com . Em outras palavras, isso funcionará apenas para esta máquina. Se, por outro lado, você está tentando veicular páginas da Web para o mundo externo usando sua máquina Mac OS X, essa é uma pergunta diferente.

Primeiro, adicione uma nova linha ao seu /etc/hostsarquivo:

127.0.0.1   local.example.com

Você pode fazer isso executando o comando sudo nano /etc/hosts, adicione esta linha até o final e salve-a pressionando Ctrl-X, Y.

Como você realmente redireciona / alias o endereço http://local.example.com para http: //localhost/path/to/example.com/ depende de qual servidor web você está usando. Supondo que você esteja usando o Apache:

Se você deseja que o navegador do usuário mostre local.example.com, configure um host viral e seu httpd.confarquivo deverá ter algo como o seguinte:

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

Se, por outro lado, você deseja que a barra de localização do navegador da Web mude para http: //localhost/path/to/example.com/ , use o mod_rewrite para criar um redirecionamento :

RewriteCond %{HTTP_HOST}   !^local\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/?(.*)         http://localhost/path/to/example.com/$1 [L,R,NE]
Stephen Jennings
fonte
Isso não vai para um certo caminho embora
John T
@ John, você está certo, consertado.
Stephen Jennings
Se o "alias" desejado fosse https://localhost/path/to/example.com, ou seja HTTPS, não HTTP, essa solução ainda se aplicaria?
Kevin Meredith
@KevinMeredith isso não é possível. O navegador precisa saber que está falando HTTPS. Pode ser possível com um redirecionamento HTTP 302, que no Apache é chamado Redirect. httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect
Beetle
/ etc / hosts geralmente são substituídos se você estiver usando uma VPN
Jonathan Neufeld