Comment alias un nom d'hôte sur Mac OSX

24

En un mot, je voudrais pouvoir ouvrir un navigateur et l'ouvrir local.example.commais il se charge en faithttp://localhost/path/to/example.com/

J'utilise Mac OSX 10.5, et je n'ai pas peur de me salir les mains avec le terminal :)

J'utilise Apache comme serveur local.

Austin Hyde
la source
Essayez-vous de diffuser des pages Web dans le monde extérieur ou attendez-vous uniquement que l' URL local.example.com fonctionne pour votre machine?
Stephen Jennings
Juste pour ma propre machine. Il devient fastidieux de taper / de se souvenir du chemin de fichier complet vers ma copie locale des sites Web sur lesquels je travaille.
Austin Hyde

Réponses:

31

Juste pour être clair, je base cela sur l'hypothèse que vous voulez vraiment que http://local.example.com charge la page Web littérale http: //localhost/path/to/example.com . En d'autres termes, cela ne fonctionnera que pour cette machine. Si, d'autre part, vous essayez de servir des pages Web au monde extérieur en utilisant votre machine Mac OS X, alors c'est une autre question.

Tout d'abord, ajoutez une nouvelle ligne à votre /etc/hostsfichier:

127.0.0.1   local.example.com

Vous pouvez le faire en exécutant la commande sudo nano /etc/hosts , ajoutez cette ligne à la fin, puis enregistrez-la en appuyant sur Ctrl-X, Y.

Comment vous redirigez / alias l'adresse http://local.example.com vers http: //localhost/path/to/example.com/ dépend du serveur Web que vous utilisez. En supposant que vous utilisez Apache:

Si vous souhaitez que le navigateur de l'utilisateur affiche local.example.com, vous devez configurer un hôte virtuel et votre httpd.conffichier devrait avoir quelque chose comme ceci:

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

Si, d'autre part, vous souhaitez que la barre d'emplacement du navigateur Web passe à http: //localhost/path/to/example.com/ , vous voudrez plutôt utiliser mod_rewrite pour créer une redirection :

RewriteCond %{HTTP_HOST}   !^local\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/?(.*)         http://localhost/path/to/example.com/$1 [L,R,NE]
Stephen Jennings
la source
Cependant, cela n'ira pas vers un certain chemin
John T
@John tu as raison, fixe.
Stephen Jennings
Si l'alias souhaité était https://localhost/path/to/example.com, c'est HTTPS-à- dire non HTTP, cette solution s'appliquerait-elle toujours?
Kevin Meredith
@KevinMeredith ce n'est pas possible. Le navigateur doit savoir qu'il parle HTTPS. Cela pourrait être possible avec une redirection HTTP 302, appelée dans Apache Redirect. httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect
Beetle
/ etc / hosts est généralement remplacé si vous utilisez un VPN
Jonathan Neufeld