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.


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]

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.