ทำ HTTP Redirect โดเมนบน nginx web server

สำหรับในการทำงานทั่วไปกับพวกเว็บไซต์ต่างๆ เวลาเรามีโดเมนหลายๆโดเมนแล้วเราจะทำให้มัน 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/ แล้วววว
15731487_1282472788463224_739994644_n

นอกจากนี้ยังมีวิธีการเขียนแบบที่ไม่มีการใช้ Server Block ด้วยการใช้ rewrite
ในตัวอย่างจะเป็นการ redirect จาก directory /images ไปที่ subdomain images แทน
rewrite ^/images/(.*)$ http://images.example.com/$1 redirect;

คราวหน้าจะเป็นการพูดถึงการใช้ rewrite ในการ เปลี่ยนแปลง slug ของเว็บไซต์เดียวกัน โปรดติดตามตอนต่อไปครับ


Posted

in

by

Tags:

Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.