Cara alias nama host di Mac OSX

24

Singkatnya, saya ingin dapat membuka browser dan membuka local.example.comtetapi sebenarnya memuathttp://localhost/path/to/example.com/

Saya menggunakan Mac OSX 10.5, dan tidak takut tangan saya kotor dengan terminal :)

Saya menggunakan Apache sebagai server lokal saya.

Austin Hyde
sumber
Apakah Anda mencoba menyajikan halaman web ke dunia luar, atau Anda hanya mengharapkan URL local.example.com berfungsi untuk mesin Anda?
Stephen Jennings
Hanya untuk mesin saya sendiri. Ini membosankan mengetik / mengingat file lengkap untuk salinan lokal saya dari situs web apa pun yang saya kerjakan.
Austin Hyde

Jawaban:

31

Untuk lebih jelasnya, saya mendasarkan ini pada asumsi bahwa Anda benar-benar ingin http://local.example.com memuat laman web literal http: //localhost/path/to/example.com . Dengan kata lain, ini hanya akan berfungsi untuk mesin ini. Sebaliknya, jika Anda mencoba untuk menyajikan halaman web ke dunia luar menggunakan mesin Mac OS X Anda, maka itu adalah pertanyaan yang berbeda.

Pertama, tambahkan baris baru ke /etc/hostsfile Anda :

127.0.0.1   local.example.com

Anda dapat melakukan ini dengan menjalankan perintah sudo nano /etc/hosts, tambahkan baris ini sampai akhir, lalu simpan dengan menekan Ctrl-X, Y.

Bagaimana Anda sebenarnya mengarahkan / alias alamat http://local.example.com ke http: //localhost/path/to/example.com/ tergantung pada server web yang Anda gunakan. Dengan asumsi Anda menggunakan Apache:

Jika Anda ingin browser pengguna menampilkan local.example.com, maka Anda ingin mengatur host virual dan httpd.conffile Anda harus memiliki sesuatu seperti berikut:

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

Di lain pihak, jika Anda ingin bilah lokasi peramban web berubah menjadi http: //localhost/path/to/example.com/ , maka alih-alih Anda ingin menggunakan mod_rewrite untuk membuat pengalihan :

RewriteCond %{HTTP_HOST}   !^local\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/?(.*)         http://localhost/path/to/example.com/$1 [L,R,NE]
Stephen Jennings
sumber
Ini tidak akan pergi ke jalur tertentu
John T
@ John kau benar, sudah diperbaiki.
Stephen Jennings
Jika "alias" yang diinginkan adalah https://localhost/path/to/example.com, yaitu HTTPStidak HTTP, apakah solusi ini masih berlaku?
Kevin Meredith
@KevinMeredith itu tidak mungkin. Peramban harus tahu bahwa itu berbicara HTTPS. Mungkin saja dengan pengalihan HTTP 302, yang di Apache disebut Redirect. httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect
Beetle
/ etc / hosts biasanya ditimpa jika Anda menggunakan VPN
Jonathan Neufeld