จะเปลี่ยนเส้นทาง URL โดยใช้ NGINX ได้อย่างไร (ชั่วคราวและถาวร)
เผยแพร่แล้ว: 2024-01-26การเปลี่ยนเส้นทางคืออะไร?
เกี่ยวกับ Nginx การเปลี่ยนเส้นทางเป็นฟังก์ชันเว็บเซิร์ฟเวอร์ที่การเข้าชมเว็บไซต์ถูกย้ายจาก URL หนึ่งไปยังอีก URL หนึ่ง มันเป็นหนึ่งในคุณสมบัติที่มีประโยชน์ที่สุดที่คุณสามารถเปลี่ยนเส้นทางผู้เยี่ยมชมไปยังตำแหน่งอื่นโดยอัตโนมัติได้อย่างง่ายดาย
แม้ว่าจะมีการเปลี่ยนเส้นทางหลายประเภทที่คุณสามารถทำได้ แต่สองประเภทที่สำคัญที่สุดและใช้กันทั่วไปคือการเปลี่ยนเส้นทางแบบถาวร (301) และการเปลี่ยนเส้นทางชั่วคราว (302)
ในโพสต์นี้ เราจะแสดงวิธีการเปลี่ยนเส้นทางพร้อมตัวอย่าง เช่น จาก www ไปยังไม่ใช่ www, การเปลี่ยนเส้นทาง Nginx ไปยังโดเมน, การเปลี่ยนเส้นทาง Nginx จาก HTTP เป็น HTTPS เป็นต้น
อ่าน: WordPress Redirect URL ทำงานอย่างไร 5 วิธีที่ดีที่สุด
ความจำเป็นในการเปลี่ยนเส้นทาง Nginx คืออะไร
- Nginx มอบหนึ่งในคุณสมบัติที่สำคัญ เช่น การเปลี่ยนเส้นทาง URL ของเว็บไซต์ไปยังที่อยู่อื่นตามเกณฑ์
- การเปลี่ยนเส้นทาง Nginx นั้นใช้งานง่ายมากและกำหนดค่าได้ง่าย เนื่องจากมีความยืดหยุ่นมากในการจัดการ URL ของเว็บไซต์
- มันมีประโยชน์มากในการรักษาอันดับ SEO สำหรับเพจ โดยเฉพาะอย่างยิ่งหากคุณกำลังย้ายจาก CMS ที่หนึ่งไปยังอีกที่หนึ่ง
- คุณลักษณะการเปลี่ยนเส้นทางยังช่วยรักษาตำแหน่ง SERP แม้ว่าจะมีการเปลี่ยนแปลงโครงสร้าง URL ก็ตาม
วิธีการเปลี่ยนเส้นทาง Nginx ทั่วไป (ชั่วคราวและถาวร)
ดังที่เราได้กล่าวไปแล้วว่ามีวิธีการเปลี่ยนเส้นทางหลายประเภทที่ใช้ได้ แต่ในทางปฏิบัติ มีเพียงสองวิธีที่ใช้กันทั่วไปเท่านั้น ได้แก่ การเปลี่ยนเส้นทางชั่วคราวและถาวร
การเปลี่ยนเส้นทางชั่วคราว (รหัสตอบกลับ: พบ 302)
- จากชื่อ คุณสามารถคาดเดาได้ว่ายาชั่วคราวจะทำอะไรได้บ้าง วิธีนี้มีวัตถุประสงค์เพื่อเปลี่ยนตำแหน่งของเพจจากที่หนึ่งไปอีกที่หนึ่งเป็นการชั่วคราว
- รหัสตอบกลับ: 302 Found ใช้เพื่อแสดงการส่งต่อเพจชั่วคราวระหว่างการเปลี่ยนเส้นทางเหล่านี้
- ส่วนใหญ่จะใช้ระหว่างการบำรุงรักษาเว็บไซต์ การเปลี่ยนเส้นทางชั่วคราวจะแจ้งการรับส่งข้อมูลหรือผู้ใช้เกี่ยวกับความไม่พร้อมใช้งานชั่วคราวของเว็บไซต์
- นอกจากนี้ยังสามารถใช้เพื่อเปลี่ยนเส้นทางหน้าที่ไม่สมบูรณ์ไปยังจุดหรือโฮมเพจอื่นได้
- สถานการณ์ตัวอย่าง: ผู้เยี่ยมชมนำทางไปยังหน้าเว็บไซต์ แต่เนื่องจากการบำรุงรักษา พวกเขาถูกเปลี่ยนเส้นทางไปยังการแจ้งเตือนที่ระบุว่าขณะนี้เว็บไซต์อยู่ระหว่างการบำรุงรักษา
การเปลี่ยนเส้นทางถาวร (รหัสตอบกลับ: พบ 301)
- การเปลี่ยนเส้นทาง Nginx แบบถาวรใช้เพื่อย้ายโดเมนเพจอย่างถาวร
- มีการใช้การเปลี่ยนเส้นทาง 301 เพื่อกำหนดความเคลื่อนไหวอย่างถาวรของเพจในบริบทนี้
- การเปลี่ยนเส้นทางนี้ส่วนใหญ่จะใช้เมื่อผู้ใช้ต้องการเปลี่ยนชื่อโดเมน และไม่ต้องการให้มีการเข้าชมเว็บไซต์เข้าถึงตำแหน่งเก่าอีกต่อไป
วิธีเปลี่ยนเส้นทาง URL โดยใช้ Nginx (ชั่วคราวและถาวร)
ก่อนที่เราจะเริ่ม ก่อนอื่นคุณต้องแน่ใจว่าได้ติดตั้ง NGINX บน VPS หรือ Virtual Private Server ของคุณแล้ว หลังจากนั้นเข้าถึง VPS ของคุณผ่าน SSH ที่ Wpoven คุณสามารถเข้าถึงเว็บไซต์ของคุณได้อย่างง่ายดายผ่านคอนโซลบรรทัดคำสั่ง SSH
อ่าน: ฉันสามารถเข้าถึงไซต์ WPOven ของฉันผ่าน SSH ได้หรือไม่
การตั้งค่าการกำหนดค่าของ NGINX
- ตำแหน่งไฟล์การกำหนดค่า NGINX: โดยทั่วไปการกำหนดค่าสำหรับ NGINX จะถูกจัดเก็บไว้ในไฟล์ .conf ซึ่งเป็นไฟล์ข้อความธรรมดาที่มีคำสั่งและการตั้งค่าสำหรับเซิร์ฟเวอร์
- ตำแหน่งเริ่มต้น: ตำแหน่งเริ่มต้นสำหรับไฟล์การกำหนดค่า NGINX มักจะอยู่ในไดเรกทอรีรากของเอกสารในไซต์ของคุณ ในกรณีนี้ จะกล่าวถึงเส้นทาง:
/etc/nginx/sites-available/directory_name.conf
- Document Root Directory: ไดเร็กทอรีนี้เป็นที่เก็บไฟล์ของเว็บไซต์ของคุณ รูทเอกสารอาจแตกต่างกันไป สำหรับเซิร์ฟเวอร์ไซต์เดียว อาจอยู่ในไดเร็กทอรี
/html
หากเซิร์ฟเวอร์ของคุณโฮสต์หลายไซต์ รูทเอกสารอาจอยู่ในไดเร็กทอรีโดเมนเฉพาะ เช่น/domain.com
- การตั้งชื่อไฟล์การกำหนดค่า: ชื่อของไฟล์ .conf ของคุณสอดคล้องกับเว็บไซต์ของคุณ ตัวอย่างเช่น หากไซต์ของคุณอยู่ในไดเร็กทอรี
/html
ไฟล์ .conf อาจมีชื่อว่าhtml.conf
หากอยู่ในไดเร็กทอรีเช่น/domain.com
ไฟล์ .conf ก็สามารถตั้งชื่อเป็นdomain.com.conf
ได้ - ไฟล์การกำหนดค่าเริ่มต้น: ภายใน
/etc/nginx/sites-available/directory
มักจะมีไฟล์เริ่มต้นที่คุณสามารถใช้เป็นเทมเพลตได้ ไฟล์นี้อาจมีการกำหนดค่าพื้นฐานที่คุณสามารถคัดลอกหรือแก้ไขเพื่อให้เหมาะกับความต้องการของคุณได้ - การสร้างไฟล์การกำหนดค่าใหม่: หรือคุณมีตัวเลือกในการสร้างไฟล์ .conf ใหม่ ตัวอย่างเช่น คุณสามารถสร้างไฟล์ชื่อ
html.conf
หรือdomain.com.conf
ตามโครงสร้างไซต์ของคุณและแบบแผนการตั้งชื่อ
คุณอาจแปลกใจที่รู้ว่าใน Nginx มีเครื่องมือในตัวที่เรียกว่าคำสั่ง "เขียนใหม่" เป็นเครื่องมือที่มีประโยชน์มากที่ทำให้การเปลี่ยนเส้นทางเป็นเรื่องง่าย ส่วนที่ดีที่สุดคือคุณไม่จำเป็นต้องทำอะไรเป็นพิเศษ เพราะระบบจะแสดงโดยอัตโนมัติทุกครั้งที่คุณติดตั้ง aa Nginx ใหม่
คำสั่ง "เขียนใหม่" นี้ไม่ได้มีไว้สำหรับทำการเปลี่ยนเส้นทางขั้นพื้นฐานเท่านั้น แต่ยังมีประโยชน์หลากหลายอีกด้วย กล่าวคือ คุณจะสามารถสร้างการเปลี่ยนเส้นทางได้สองประเภท คือ แบบถาวรและชั่วคราว
สิ่งที่คุณต้องทำคือส่งผ่านเพียงสองอาร์กิวเมนต์เท่านั้น คือ URL เก่าและ URL ใหม่ ด้านล่างนี้เป็นตัวอย่างบางส่วนสำหรับการอ้างอิงของคุณ เพียงป้อนบรรทัดต่อไปนี้ในการกำหนดค่าเซิร์ฟเวอร์ของคุณ
ขั้นแรก ให้เปิดไฟล์การกำหนดค่าโดยป้อนคำสั่งต่อไปนี้ในเทอร์มินัล
$ sudo vi /etc/nginx/nginx.conf
หลังจากนั้นใช้คำสั่งต่อไปนี้ตามความต้องการของคุณ
1. การเปลี่ยนเส้นทางแบบ Page to Page Nginx
การเปลี่ยนเส้นทาง Nginx แบบหน้าต่อหน้าชั่วคราว
server {
# Temporary redirect to an individual page
rewrite ^/oldpage$ http://www.example.com/newpage redirect;
}
เปลี่ยนเส้นทางถาวรไปยังหน้า Nginx
server {
# Permanent redirect to an individual page
rewrite ^/oldpage$ http://www.example.com/newpage permanent;
}
จากคำสั่งข้างต้น คุณสังเกตเห็นว่าหากคุณต้องการสร้างการเปลี่ยนเส้นทางแบบถาวร สิ่งที่คุณต้องทำคือแทนที่ "เปลี่ยนเส้นทาง" ด้วย "ถาวร" ที่ส่วนท้ายของคำสั่ง
2. WWW ไปยังการเปลี่ยนเส้นทาง Nginx ที่ไม่ใช่ www
www ถาวรไปยังการเปลี่ยนเส้นทางที่ไม่ใช่ www:
server {
# Permanent redirect to non-www
server_name www.example.com;
rewrite ^/(.*)$ http://example.com/$1 permanent;
}
หมายเหตุ : ในกรณีที่คุณต้องการเปลี่ยนเส้นทางจากที่ไม่ใช่ www ไปยัง www คุณเพียงแค่ต้องแทนที่ URL ของเว็บไซต์ที่กล่าวถึงในคำสั่งข้างต้น เช่น แทนที่ www.example.com ด้วย example.com และในทางกลับกัน
3. จะเปลี่ยนเส้นทาง URL จาก HTTP เป็น HTTPS ใน Nginx ได้อย่างไร
ก่อนดำเนินการเปลี่ยนเส้นทางนี้ อย่าลืมติดตั้งใบรับรอง SSL การเปลี่ยนเส้นทางไปยัง HTTPS มีข้อดีหลายประการ ช่วยปกป้องเว็บไซต์ของคุณจากการโจมตี MIMT การโจรกรรมข้อมูล ฯลฯ และแม้แต่พอร์ตก็แตกต่างกัน เช่น HTTP ใช้ 80 พอร์ต ในขณะที่ HTTPS ใช้ 443
ดังนั้นเพื่อปกป้องการแบ่งปันข้อมูลที่ละเอียดอ่อนระหว่างคุณและผู้เยี่ยมชมของคุณ คุณต้องมีคำสั่งต่อไปนี้:
server {
listen 80;
server_name www.domain.tld;
return 301 https://www.domain.tld$request_uri;
}
4. Nginx เปลี่ยนเส้นทาง URL ไปยัง URL อื่น
หากคุณต้องการเปลี่ยนเส้นทางอย่างถาวร เช่น nginx เปลี่ยนเส้นทางไปยัง URL 301 อื่น ให้ใช้คำสั่งต่อไปนี้:
ไปยังโดเมนใหม่จากโดเมนเก่า
server {
listen 80;
listen 443 ssl;
server_name olddomain.com www.olddomain.com;
return 301 $scheme://www.newdomain.com$request_uri;
}
หรือ
server {
# Permanent redirect to new URL
listen 443 ssl;
# Add this line to listen on the HTTPS port and enable SSL server_name olddomain.com;
ssl_certificate /path/to/your/ssl_certificate.crt; # Update with the actual path to your SSL certificate
ssl_certificate_key /path/to/your/ssl_certificate_key.key; # Update with the actual path to your SSL certificate key
# Additional SSL settings can be configured here
rewrite ^/(.*)$ https://newdomain.com/$1 permanent;
# Update to use 'https' protocol
}
- เราได้ตั้งค่าการเปลี่ยนเส้นทางสำหรับเว็บไซต์ของเราโดยใช้เครื่องมือที่เรียกว่าคำสั่ง "เขียนใหม่" ใน Nginx
-
^/(.*)$
เป็นนิพจน์ทั่วไปที่จะใช้ทุกอย่างหลังเครื่องหมายทับสุดท้าย ( / ) ใน URL - ตัวอย่างเช่น หากมีคนพยายามเข้าถึง
http://olddomain.com/index.html
ระบบจะใช้ส่วนindex.html
- ดังนั้น หากคุณกำลังไปที่
http://olddomain.com/index.html
ระบบจะเปลี่ยนเส้นทางคุณไปยังhttp://newdomain.com/index.html
ได้อย่างราบรื่น - แนวคิดก็คือการเปลี่ยนเส้นทางผู้ใช้ไปยังเนื้อหาเดียวกันบนโดเมนใหม่ได้อย่างราบรื่น
- เพื่อให้แน่ใจว่าการเปลี่ยนเส้นทางนี้เป็นแบบถาวร เราได้เพิ่มคำหลักพิเศษ "ถาวร" หลังคำสั่ง
rewrite
- ซึ่งจะแจ้งให้ทั้งเบราว์เซอร์และเครื่องมือค้นหาทราบว่านี่เป็นการเปลี่ยนแปลงแบบถาวร โดยใช้สิ่งที่เรียกว่ารหัสสถานะ HTTP 301
5. Nginx เปลี่ยนเส้นทางไปยังโดเมนอื่นโดยไม่ต้องเปลี่ยน URL
สมมติว่าคุณต้องการเปลี่ยนเส้นทางโดเมน olddomain.com ไปยัง newdomain.com โดยไม่เปลี่ยน URL หมายความว่าเมื่อคุณเข้าสู่ olddomain.com ควรเปลี่ยนเส้นทางไปที่ newdomain.com แต่ URL ควรยังคงแสดง olddomain.com
นี่คือวิธีที่คุณสามารถเข้าใกล้
server {
listen 80;
server_name olddomain.com;
location / {
proxy_pass http://newdomain.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}
6. การเปลี่ยนเส้นทาง Nginx ของไซต์เฉพาะ
server {
listen 80;
server_name example.com;
return 301 http://newexample.com$request_uri;
}
ตรวจสอบไวยากรณ์ Nginx
หากต้องการตรวจสอบไวยากรณ์ nginx ทั้งหมดว่าถูกต้อง ให้ใช้คำสั่งต่อไปนี้:
nginx -t
หากผลลัพธ์ว่างเปล่า แสดงว่าไวยากรณ์ถูกต้อง และคุณต้องรีสตาร์ทเซิร์ฟเวอร์ Nginx เพื่อให้การแก้ไขเหล่านี้มีประสิทธิภาพ
รีสตาร์ทเซิร์ฟเวอร์ Nginx
อย่าลืมรีสตาร์ทเซิร์ฟเวอร์ Nginx เพื่อให้กฎเหล่านี้มีผลโดยใช้คำสั่ง:
sudo systemctl restart Nginx
สรุป
ดังที่ได้กล่าวไปแล้วข้างต้น Nginx กลายเป็นเว็บเซิร์ฟเวอร์ที่ทรงพลังและใช้งานง่ายที่สุด ซึ่งช่วยให้คุณเปลี่ยนเส้นทาง Nginx แบบถาวรและชั่วคราวได้อย่างง่ายดาย
หลังจากอ่านบล็อกนี้ ตอนนี้คุณรู้วิธีสร้าง URL การเปลี่ยนเส้นทางโดยใช้ NGINX แล้ว ไม่ว่าจะเป็นการเปลี่ยนเส้นทาง nginx จาก HTTP เป็น HTTPS จากโดเมนหนึ่งไปยังอีกโดเมนหนึ่ง ฯลฯ
นอกจากนี้ คุณยังได้เรียนรู้ว่าการเปลี่ยนเส้นทางส่งผลต่อการจัดอันดับ SEO ของคุณอย่างไร ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณใช้ประเภทการเปลี่ยนเส้นทางที่ถูกต้องเสมอ
ด้วยฟีเจอร์ที่เป็นประโยชน์นี้ คุณสามารถเปลี่ยนโครงสร้างเว็บไซต์ของคุณตามแนวโน้มและข้อกำหนดได้อย่างง่ายดาย และไม่ต้องกลัวปริมาณการเข้าชมและการสูญเสียอันดับ SERP
WPOven เสนอตัวเลือกโฮสติ้งที่จัดการโดย WordPress สำหรับโปรเจ็กต์ NGINX ถัดไปของคุณ ติดต่อเราเพื่อหารือเกี่ยวกับตัวเลือกที่ดีที่สุดสำหรับคุณ
หากคุณมีข้อสงสัยหรือข้อเสนอแนะ โปรดแจ้งให้เราทราบในส่วนความคิดเห็นด้านล่าง:
คำถามที่พบบ่อย
จะเปลี่ยนเส้นทาง URL ใน nginx ได้อย่างไร?
ใน Nginx มีเครื่องมือในตัวที่เรียกว่าคำสั่ง "เขียนใหม่" เป็นเครื่องมือที่มีประโยชน์มากที่ทำให้การเปลี่ยนเส้นทางเป็นเรื่องง่าย ส่วนที่ดีที่สุดคือคุณไม่จำเป็นต้องทำอะไรเป็นพิเศษ เพราะระบบจะแสดงโดยอัตโนมัติทุกครั้งที่คุณติดตั้ง aa Nginx ใหม่
รหัสการเปลี่ยนเส้นทางสำหรับ Nginx คืออะไร
nginx ค่อนข้างใช้งานได้หลากหลายและเสนอการเปลี่ยนเส้นทางให้คุณสองประเภท แบบถาวรซึ่งมีโค้ดตอบกลับคือ 301 และโค้ดตอบกลับแบบลดขนาดชั่วคราวคือ 302
NGINX ใช้ทำอะไร?
Nginx เป็นเว็บเซิร์ฟเวอร์อเนกประสงค์และประสิทธิภาพสูงและพร็อกซีเซิร์ฟเวอร์ย้อนกลับ โดยทั่วไปจะใช้เพื่อวัตถุประสงค์ต่อไปนี้: เว็บเซิร์ฟเวอร์ , Reverse Proxy Server , Load Balancer , การยุติ SSL/TLS , การแคช , Content Delivery Network (CDN) , API Gateway , การสนับสนุน WebSocket , ความปลอดภัย และ สถาปัตยกรรมความพร้อมใช้งานสูง
Rahul Kumar เป็นผู้ชื่นชอบเว็บไซต์และเป็นนักยุทธศาสตร์ด้านเนื้อหาที่เชี่ยวชาญด้าน WordPress และเว็บโฮสติ้ง ด้วยประสบการณ์หลายปีและความมุ่งมั่นในการติดตามแนวโน้มของอุตสาหกรรม เขาจึงสร้างกลยุทธ์ออนไลน์ที่มีประสิทธิภาพที่กระตุ้นการเข้าชม เพิ่มการมีส่วนร่วม และเพิ่ม Conversion ความใส่ใจในรายละเอียดและความสามารถในการสร้างสรรค์เนื้อหาที่น่าสนใจของ Rahul ทำให้เขาเป็นทรัพย์สินที่มีค่าสำหรับแบรนด์ใดๆ ก็ตามที่ต้องการปรับปรุงการนำเสนอตัวตนในโลกออนไลน์