สรุปฉันต้องการที่จะสามารถเปิดเบราว์เซอร์และเปิดlocal.example.com
แต่มันโหลดจริงhttp://localhost/path/to/example.com/
ฉันใช้ Mac OSX 10.5 และไม่กลัวที่จะทำให้มือสกปรกด้วยเทอร์มินัล :)
ฉันใช้ Apache เป็นเซิร์ฟเวอร์ท้องถิ่นของฉัน
สรุปฉันต้องการที่จะสามารถเปิดเบราว์เซอร์และเปิดlocal.example.com
แต่มันโหลดจริงhttp://localhost/path/to/example.com/
ฉันใช้ Mac OSX 10.5 และไม่กลัวที่จะทำให้มือสกปรกด้วยเทอร์มินัล :)
ฉันใช้ Apache เป็นเซิร์ฟเวอร์ท้องถิ่นของฉัน
คำตอบ:
เพียงเพื่อจะชัดเจนฉัน 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]
https://localhost/path/to/example.com
คือHTTPS
ไม่HTTP
เช่นนั้นโซลูชันนี้จะยังใช้อยู่หรือไม่
Redirect
จะเรียกว่า httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect