Jak uzyskać alias nazwy hosta w systemie Mac OSX

24

W skrócie, chciałbym móc otworzyć przeglądarkę i otworzyć, local.example.comale tak naprawdę się ładujehttp://localhost/path/to/example.com/

Używam Mac OSX 10.5 i nie boję się zabrudzić terminalu terminalem :)

Używam Apache jako mojego lokalnego serwera.

Austin Hyde
źródło
Czy próbujesz wyświetlać strony internetowe na zewnątrz, czy tylko oczekujesz, że adres URL local.example.com będzie działał na Twoim komputerze?
Stephen Jennings
Tylko dla mojej własnej maszyny. Męczące jest pisanie / zapamiętywanie pełnej ścieżki do mojej lokalnej kopii stron internetowych, nad którymi pracuję.
Austin Hyde

Odpowiedzi:

31

Dla jasności opieram to na założeniu, że naprawdę chcesz, aby http://local.example.com ładował dosłowną stronę internetową http: //localhost/path/to/example.com . Innymi słowy, będzie to działać tylko w przypadku tego komputera. Z drugiej strony, jeśli próbujesz wyświetlać strony internetowe na zewnątrz za pomocą komputera z systemem Mac OS X, to jest inne pytanie.

Najpierw dodaj nowy wiersz do /etc/hostspliku:

127.0.0.1   local.example.com

Możesz to zrobić, uruchamiając polecenie sudo nano /etc/hosts, dodaj ten wiersz na końcu, a następnie zapisz go, naciskając Ctrl-X, Y.

Sposób przekierowania / aliasu adresu http://local.example.com na http: //localhost/path/to/example.com/ zależy od używanego serwera WWW. Zakładając, że używasz Apache:

Jeśli chcesz, aby przeglądarka użytkownika wyświetlała adres local.example.com, musisz skonfigurować hosta wirtualnego, a Twój httpd.confplik powinien mieć coś takiego:

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

Jeśli natomiast chcesz, aby pasek lokalizacji przeglądarki zmienił się na http: //localhost/path/to/example.com/ , zamiast tego będziesz chciał użyć mod_rewrite do utworzenia przekierowania :

RewriteCond %{HTTP_HOST}   !^local\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/?(.*)         http://localhost/path/to/example.com/$1 [L,R,NE]
Stephen Jennings
źródło
To nie pójdzie jednak na pewną ścieżkę
John T
@John masz rację, naprawione.
Stephen Jennings
Gdyby pożądany „alias” był https://localhost/path/to/example.com, tzn. HTTPSNie HTTP, czy to rozwiązanie nadal obowiązywałoby?
Kevin Meredith,
@KevinMeredith to niemożliwe. Przeglądarka musi wiedzieć, że mówi HTTPS. Może to być możliwe dzięki przekierowaniu HTTP 302, które w Apache jest nazywane Redirect. httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect
Beetle
/ etc / hosts zazwyczaj jest nadpisywany, jeśli używasz VPN
Jonathan Neufeld