วิธีนามแฝงชื่อโฮสต์บน Mac OSX


24

สรุปฉันต้องการที่จะสามารถเปิดเบราว์เซอร์และเปิดlocal.example.comแต่มันโหลดจริงhttp://localhost/path/to/example.com/

ฉันใช้ Mac OSX 10.5 และไม่กลัวที่จะทำให้มือสกปรกด้วยเทอร์มินัล :)

ฉันใช้ Apache เป็นเซิร์ฟเวอร์ท้องถิ่นของฉัน


คุณกำลังพยายามแสดงหน้าเว็บสู่โลกภายนอกหรือคุณคาดหวังว่าURL local.example.comจะทำงานกับเครื่องของคุณหรือไม่
Stephen Jennings

เพียงสำหรับเครื่องของฉันเอง มันได้รับการพิมพ์ / จดจำไฟล์พา ธ เต็มรูปแบบที่น่าเบื่อไปกับสำเนาของฉันในเว็บไซต์ที่ฉันกำลังทำงานอยู่
Austin Hyde

คำตอบ:


31

เพียงเพื่อจะชัดเจนฉัน basing นี้บนสมมติฐานที่ว่าจริงๆคุณต้องการhttp://local.example.comในการโหลดหน้าเว็บที่แท้จริงhttp: //localhost/path/to/example.com กล่าวอีกนัยหนึ่งสิ่งนี้จะใช้ได้กับเครื่องนี้เท่านั้น หากในอีกทางหนึ่งคุณกำลังพยายามแสดงหน้าเว็บสู่โลกภายนอกด้วยเครื่อง Mac OS X ของคุณนั่นเป็นคำถามที่แตกต่างออกไป

ก่อนอื่นให้เพิ่มบรรทัดใหม่ใน/etc/hostsไฟล์ของคุณ:

127.0.0.1   local.example.com

คุณสามารถทำได้โดยการรันคำสั่งsudo nano /etc/hostsเพิ่มบรรทัดนี้ไปยังจุดสิ้นสุดจากนั้นบันทึกโดยกด Ctrl-X, Y

วิธีที่คุณเปลี่ยนเส้นทาง / ชื่อแทนที่อยู่http://local.example.comเป็นhttp: //localhost/path/to/example.com/ขึ้นอยู่กับเว็บเซิร์ฟเวอร์ที่คุณใช้ สมมติว่าคุณใช้ Apache:

หากคุณต้องการให้เบราว์เซอร์ของผู้ใช้แสดง local.example.com คุณต้องการตั้งค่าโฮสต์แบบ virualและhttpd.confไฟล์ของคุณควรมีลักษณะดังนี้:

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

หากในอีกทางหนึ่งคุณต้องการให้แถบตำแหน่งของเว็บเบราว์เซอร์เปลี่ยนเป็นhttp: //localhost/path/to/example.com/ดังนั้นคุณจะต้องใช้ mod_rewrite เพื่อสร้างการเปลี่ยนเส้นทาง :

RewriteCond %{HTTP_HOST}   !^local\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/?(.*)         http://localhost/path/to/example.com/$1 [L,R,NE]

สิ่งนี้จะไม่ไปในเส้นทางที่แน่นอนแม้ว่า
John T

@ John ถูกต้องแล้ว
Stephen Jennings

หาก "นามแฝง" ที่ต้องการhttps://localhost/path/to/example.comคือHTTPSไม่HTTPเช่นนั้นโซลูชันนี้จะยังใช้อยู่หรือไม่
Kevin Meredith

@KevinMeredith ที่เป็นไปไม่ได้ เบราว์เซอร์ต้องรู้ว่ากำลังพูดถึง HTTPS มันอาจจะเป็นไปได้ด้วย HTTP เปลี่ยนเส้นทาง 302 ซึ่ง Apache Redirectจะเรียกว่า httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect
Beetle

/ etc / hosts มักจะถูกเขียนทับหากคุณใช้ VPN แม้ว่า
Jonathan Neufeld
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.