Come alias un nome host su Mac OSX


24

In breve, vorrei essere in grado di aprire un browser e di aprirlo, local.example.comma in realtà si caricahttp://localhost/path/to/example.com/

Sto usando Mac OSX 10.5 e non ho paura di sporcarmi le mani con il terminale :)

Uso Apache come server locale.


Stai tentando di servire pagine web al mondo esterno o ti aspetti solo che l' URL local.example.com funzioni per la tua macchina?
Stephen Jennings,

Solo per la mia macchina. Diventa noioso digitare / ricordare il percorso completo del file nella mia copia locale di qualsiasi sito Web su cui sto lavorando.
Austin Hyde,

Risposte:


31

Giusto per essere chiari, sto basando questo sul presupposto che vuoi davvero che http://local.example.com carichi la pagina web letterale http: //localhost/path/to/example.com . In altre parole, funzionerà solo con questa macchina. Se, d'altra parte, stai provando a servire pagine web verso il mondo esterno usando la tua macchina Mac OS X, allora questa è una domanda diversa.

Innanzitutto, aggiungi una nuova riga al tuo /etc/hostsfile:

127.0.0.1   local.example.com

Puoi farlo eseguendo il comando sudo nano /etc/hosts, aggiungi questa riga alla fine, quindi salvala premendo Ctrl-X, Y.

Il modo in cui reindirizzi / alias l'indirizzo http://local.example.com su http: //localhost/path/to/example.com/ dipende dal server Web che stai utilizzando. Supponendo che stai usando Apache:

Se vuoi che il browser dell'utente mostri local.example.com, allora vuoi impostare un host virual e il tuo httpd.conffile dovrebbe avere qualcosa di simile al seguente:

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

Se, d'altra parte, vuoi che la barra degli indirizzi del browser web cambi in http: //localhost/path/to/example.com/ , allora invece vorrai usare mod_rewrite per creare un reindirizzamento :

RewriteCond %{HTTP_HOST}   !^local\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/?(.*)         http://localhost/path/to/example.com/$1 [L,R,NE]

Questo non porterà a un certo percorso, però
John T

@Giovanni hai ragione, riparato.
Stephen Jennings,

Se il desiderato "alias" fosse https://localhost/path/to/example.com, cioè HTTPSno HTTP, questa soluzione si applicherebbe comunque?
Kevin Meredith il

@KevinMeredith non è possibile. Il browser deve sapere che sta parlando HTTPS. Potrebbe essere possibile con un reindirizzamento HTTP 302, che in Apache viene chiamato Redirect. httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect
Beetle

/ etc / hosts di solito viene sovrascritto se si utilizza una VPN
Jonathan Neufeld il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.