สำหรับในการทำงานทั่วไปกับพวกเว็บไซต์ต่างๆ เวลาเรามีโดเมนหลายๆโดเมนแล้วเราจะทำให้มัน Redirect หรือให้มันชี้มาหาโดเมนที่มีเว็บไซต์อยู่เราจะทำได้อย่างไร หรือ ต้องการให้มันชี้ไปหา URL ที่เราต้องการ วันนี้ผมได้สรุปเรื่องที่ได้ศึกษาเบื้องต้นเกี่ยวกับตัว Nginx ในการทำ Redirect
ในที่นี้ผมเข้าไปทำการ Config ใน default.conf
โดยเพิ่มโค้ดเข้าไปตามนี้…
server {
listen 80;
server_name sites1.com;
return 301 $scheme://sites2.com$request_uri;
}
โดยตัวโค้ดนี้ Listen บนพอร์ท 80 เมื่อ URL มาเป็น sites1.com จะถูก Redirect ไปที่ sites2.com
โดย $scheme คือ Application Protocol ที่ใข้ request ในที่นี้จะเป็น http
และ $request_uri คือ directory ที่sites2ต่อมาจากหลัง domain ที่ request เข้ามา
อย่าลืมที่จะ reload config ทุกครั้งหลังแก้
sudo service nginx reload
อันนี้ผมทดลองบนเครื่องของผมเองจึงต้องไปตั้งค่าใน /etc/hosts
โดยทำการเพิ่ม
...
127.0.0.1 localhost sites1.com sites2.com
...
ลองทดลองเข้า http://sites1.com/ บนเบราเซอร์ จะถูก redirect ไปที่ http://sites2.com/ แล้วววว
นอกจากนี้ยังมีวิธีการเขียนแบบที่ไม่มีการใช้ Server Block ด้วยการใช้ rewrite
ในตัวอย่างจะเป็นการ redirect จาก directory /images ไปที่ subdomain images แทน
rewrite ^/images/(.*)$ http://images.example.com/$1 redirect;
คราวหน้าจะเป็นการพูดถึงการใช้ rewrite ในการ เปลี่ยนแปลง slug ของเว็บไซต์เดียวกัน โปรดติดตามตอนต่อไปครับ
Leave a Reply