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.


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]

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.