วิธีเปลี่ยนเส้นทาง NON-WWW & WWW ด้วย Nginx


เมื่อคุณมีเว็บไซต์หรือแอปพลิเคชันและใช้งาน Nginx ขอแนะนำให้ผู้เยี่ยมชมเข้าถึงโดเมนโดยใช้ชื่อโดเมนของคุณในเวอร์ชัน www และไม่ใช่ www อย่างไรก็ตาม ในยุคปัจจุบันของ Search Engine Optimization และผู้ใช้ที่ต้องการประสบการณ์การท่องเว็บที่รวดเร็วและง่ายดาย การมีลิงก์ URL สองลิงก์อาจส่งผลเสียต่อประสบการณ์โดยรวมของเว็บไซต์ของคุณ อย่างไรก็ตาม นี่ไม่ได้หมายความว่าคุณควรละทิ้งวิธีการเข้าถึงไซต์ของผู้เข้าชมวิธีใดวิธีหนึ่ง การเปลี่ยนเส้นทางอย่างง่ายสามารถปรับปรุงประสบการณ์ของผู้เยี่ยมชมเว็บไซต์ของคุณ เพิ่มการจดจำลิงก์ย้อนกลับได้รวดเร็วยิ่งขึ้น และปรับปรุงคะแนน SEO ของคุณ

ในคำแนะนำด้านล่าง คุณจะได้เรียนรู้การใช้วิธีการเปลี่ยนเส้นทาง URL ของ www ไปยังไม่ใช่ www เช่น (www.example.com) ไปยัง (example.com) และในทางกลับกันด้วยการเปลี่ยนเส้นทางจะเรียกว่า a เปลี่ยนเส้นทางถาวรหรือ "การเปลี่ยนเส้นทาง 301" ซึ่งสามารถทำได้บนระบบปฏิบัติการใด ๆ ที่ใช้ Nginx ตัวอย่างมีไว้สำหรับบล็อกเซิร์ฟเวอร์เท่านั้น พวกเขาไม่ได้อธิบายวิธีตั้งค่าหรือติดตั้ง Nginx

เบื้องต้น

  • ระบบปฏิบัติการที่แนะนำ: ระบบ Linux ใด ๆ ที่สามารถเรียกใช้ Nginx
  • บัญชีผู้ใช้: บัญชีผู้ใช้ที่มีการเข้าถึง sudo หรือรูท
  • แพ็คเกจแนะนำ: โค้ง

ติดตั้ง distros วิธี DNF ของ curl:

sudo dnf install curl

ติดตั้ง curl วิธี APT distros:

sudo apt install curl

ติดตั้ง curl Pacman Method Distros:



sudo pacman -S curl

ติดตั้ง curl Zypper Method Distros:

sudo zypper install curl

ตัวเลือกที่ 1: เปลี่ยนเส้นทาง NON-WWW ไปที่ WWW

ในตัวอย่างแรก คุณจะต้องเพิ่มโค้ดด้านล่างด้านบนที่มีอยู่ของคุณ (www) บล็อกชื่อเซิร์ฟเวอร์เพื่อเปลี่ยนเส้นทางผู้เยี่ยมชมทั้งหมดที่เข้าชม URL ที่ไม่ใช่ www ของคุณไปยัง www URL เท่านั้น

HTTP (80):

server {
    server_name    .example.com;
    listen                 80;
    listen                 [::]:80;
    return 301         https://www.example.com$request_uri;
}

HTTPS (ฮิต)

server {
    listen                         443 ssl http2;
    listen                          [::]:443 ssl http2;
    server_name             .example.com;

    # SSL
    ssl_certificate                 /path/to/cert.pem;
    ssl_certificate_key         /path/to/key.pem;
    ssl_trusted_certificate    /path/to/cert.crt;
    return                             301 https://www.example.com$request_uri;
}

หมายเหตุ ตรวจสอบให้แน่ใจ ($request_uri) จะไม่ถูกลบ เนื่องจากอาจทำให้เกิดปัญหากับลิงก์ที่ไม่ใช่ www ทั้งหมด เพียงแค่เปลี่ยนเส้นทางกลับไปที่หน้าแรกของคุณ

ตัวอย่างนี้คือ https://example.com/random-topic ถ้า ($request_uri) ไม่ได้เพิ่มเข้าไป มันจะเปลี่ยนเส้นทางไปที่ www.example.com แทนที่จะเป็น https://www.example.com/random-topic ซึ่งจะทำให้ผู้เยี่ยมชมของคุณหงุดหงิดและทำร้ายอันดับของเครื่องมือค้นหาของคุณ โดยที่โปรแกรมรวบรวมข้อมูลเริ่มสับสน



ตัวเลือกที่ 2: เปลี่ยนเส้นทาง WWW เป็น NON-WWW

ในตัวอย่างที่สอง คุณจะเพิ่มโค้ดด้านล่างด้านบนที่มีอยู่ของคุณ (ไม่ใช่ www) บล็อกชื่อเซิร์ฟเวอร์เพื่อเปลี่ยนเส้นทางผู้เยี่ยมชมทั้งหมดที่เข้าชม www URL ของคุณไปยัง URL ที่ไม่ใช่ www เท่านั้น

เอชทีพีที (80)

server {
    server_name     www.example.com;
    listen                 80;
    listen                 [::]:80;
    return 301         https://example.com$request_uri;
}

HTTPS (443)

server {
    listen                  443 ssl http2;
    listen                  [::]:443 ssl http2;
    server_name     www.example.com;

    # SSL
    ssl_certificate                /path/to/cert.pem;
    ssl_certificate_key        /path/to/key.pem;
    ssl_trusted_certificate   /path/to/cert.crt;
    return                             301 https://example.com$request_uri;
}

ตามที่ระบุไว้ในตอนท้ายของตัวเลือก 1 ให้แน่ใจว่า ($request_uri) ไม่ถูกลบออก นี่เป็นส่วนสำคัญ

หมายเหตุ วางใบรับรองและคีย์สำหรับการเปลี่ยนเส้นทางหรือปัญหา HTTPS

ยืนยันการเปลี่ยนแปลง

ก่อนที่คุณจะรีสตาร์ทอินสแตนซ์ Nginx การดำเนินการแบบแห้งเป็นการดีที่สุดเพื่อให้แน่ใจว่าไม่มีข้อผิดพลาดในสิ่งที่คุณเพิ่งเพิ่มเข้าไป ในการทดสอบ ให้รันคำสั่งต่อไปนี้:



sudo nginx -t

หากทุกอย่างเรียบร้อย คุณควรได้ผลลัพธ์ต่อไปนี้:

nginx: the configuration file /etc/nginx/my-server.conf syntax is ok
nginx: configuration file /etc/nginx/my-server.conf test is successful

ดำเนินการต่อเพื่อเริ่มบริการ Nginx ใหม่เพื่อทำการเปลี่ยนแปลงจริง:

sudo systemctl restart nginx

แค่นั้นแหละ! คุณได้ทำการเปลี่ยนเส้นทางเรียบร้อยแล้ว ในการทดสอบว่าการเปลี่ยนเส้นทางทำงานหรือไม่ ให้ดำเนินการดังต่อไปนี้:

ไม่ใช่ www เพื่อทดสอบการเปลี่ยนเส้นทาง www

curl -I https://example.com

ตัวอย่างผลลัพธ์:

HTTP/1.1 301 Moved Permanently
 Server: nginx/1.21.1 (Ubuntu)
 Date: Mon, 14 July 2021 18:20:19 GMT
 Content-Type: text/html
 Content-Length: 193
 Connection: keep-alive
 Location: http://www.example.com/

www ไปยังการทดสอบการเปลี่ยนเส้นทางที่ไม่ใช่ www

curl -I https://www.example.com

ตัวอย่างผลลัพธ์:

HTTP/1.1 301 Moved Permanently
 Server: nginx/1.21.1 (Ubuntu)
 Date: Mon, 14 July 2021 18:21:33 GMT
 Content-Type: text/html
 Content-Length: 193
 Connection: keep-alive
 Location: http://example.com/

ความคิดเห็นและข้อสรุป

ในคู่มือนี้ คุณได้เรียนรู้วิธีเพิ่มทั้งทิศทาง www และไม่ใช่ www ลงในบล็อกไซต์เซิร์ฟเวอร์ของ Nginx อย่างง่ายดายและรวดเร็ว ซึ่งจะปรับปรุงประสบการณ์โดยรวมของผู้เยี่ยมชมของคุณโดยไปที่ URL เดียวแทนที่จะเป็นสอง URL



ตามที่อธิบายไว้ในตอนต้นของคู่มือ SEO กำลังมีความสำคัญมากขึ้น เสิร์ชเอ็นจิ้นกำลังทำเครื่องหมายเว็บไซต์อย่างต่อเนื่อง การมี URL สองแห่งที่มีเนื้อหาที่ซ้ำกันอาจเป็นเครื่องหมายสีแดงขนาดใหญ่ในเว็บไซต์ของคุณ การเพิ่มการเปลี่ยนเส้นทางนี้สามารถเพิ่มอันดับและลิงก์ย้อนกลับของคุณได้อย่างรวดเร็ว



ไม่ใช่สิ่งที่คุณกำลังมองหา? ลองค้นหาบทช่วยสอนเพิ่มเติม

แสดงความคิดเห็น