Alias ​​eines Hostnamens unter Mac OSX

24

Kurz gesagt, ich möchte einen Browser öffnen und öffnen können, local.example.comaber er wird tatsächlich geladenhttp://localhost/path/to/example.com/

Ich benutze Mac OSX 10.5 und habe keine Angst davor, mir die Hände mit dem Terminal schmutzig zu machen :)

Ich benutze Apache als lokalen Server.

Austin Hyde
quelle
Versuchen Sie, Webseiten für die Außenwelt bereitzustellen , oder erwarten Sie nur, dass die URL local.example.com für Ihren Computer funktioniert?
Stephen Jennings
Nur für meine eigene Maschine. Es wird mühsam, den vollständigen Dateipfad für meine lokale Kopie der Websites, an denen ich arbeite, einzugeben / zu speichern.
Austin Hyde

Antworten:

31

Ich gehe davon aus, dass Sie wirklich wollen, dass http://local.example.com die wörtliche Webseite http: //localhost/path/to/example.com lädt . Mit anderen Worten, dies funktioniert nur auf diesem Computer. Wenn Sie jedoch versuchen, mit Ihrem Mac OS X-Computer Webseiten für die Außenwelt bereitzustellen, ist dies eine andere Frage.

Fügen Sie Ihrer /etc/hostsDatei zunächst eine neue Zeile hinzu :

127.0.0.1   local.example.com

Führen Sie dazu den Befehl aus sudo nano /etc/hosts, fügen Sie diese Zeile am Ende hinzu und speichern Sie sie durch Drücken von Strg-X, Y.

Wie Sie die Adresse http://local.example.com tatsächlich zu http: //localhost/path/to/example.com/ umleiten / aliasen, hängt davon ab, welchen Webserver Sie verwenden. Angenommen, Sie verwenden Apache:

Wenn der Browser des Benutzers local.example.com anzeigen soll, möchten Sie einen virtuellen Host einrichten und Ihre httpd.confDatei sollte etwa Folgendes enthalten:

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

Wenn Sie andererseits möchten, dass die Adressleiste des Webbrowsers zu http: //localhost/path/to/example.com/ wechselt , sollten Sie stattdessen mod_rewrite verwenden, um eine Umleitung zu erstellen :

RewriteCond %{HTTP_HOST}   !^local\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/?(.*)         http://localhost/path/to/example.com/$1 [L,R,NE]
Stephen Jennings
quelle
Dies führt jedoch nicht zu einem bestimmten Pfad
John T
@ John du hast recht, behoben.
Stephen Jennings
Wenn der gewünschte "Alias" wäre https://localhost/path/to/example.com, dh HTTPSnicht HTTP, würde diese Lösung noch gelten?
Kevin Meredith
@ KevinMeredith das ist nicht möglich. Der Browser muss wissen, dass es sich um HTTPS handelt. Möglicherweise ist dies mit einer HTTP 302-Umleitung möglich, die in Apache aufgerufen wird Redirect. httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect
Käfer
/ etc / hosts wird normalerweise überschrieben, wenn Sie ein VPN verwenden
Jonathan Neufeld