กลับไปหน้าบทความ

อ่าน 2 นาที

HTTP 301

ใน เวิลด์ไวด์เว็บ HTTP 301 หรือ 301 Moved Permanently คือ รหัสสถานะ HTTP ที่ใช้สำหรับการเปลี่ยนเส้นทางถาวร หมายความว่าลิงก์หรือระเบียนไปยัง URL นี้...

HTTP 301

ในเวิลด์ไวด์เว็บ HTTP 301หรือ301 Moved Permanentlyคือรหัสสถานะ HTTPที่ใช้สำหรับการเปลี่ยนเส้นทางถาวร หมายความว่าลิงก์หรือระเบียนไปยังURL นี้ ควรได้รับการอัปเดตไปยังปลายทางที่ระบุในฟิลด์ Location ของการตอบสนองจากเซิร์ฟเวอร์ การเปลี่ยนเส้นทาง 301 ถือเป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับการอัปเกรดผู้ใช้จาก HTTP เป็น HTTPS

RFC 2616 [ 1 ]ระบุว่า:

  • หากไคลเอนต์มีฟังก์ชันแก้ไขลิงก์ ควรทำการอัปเดตข้อมูลอ้างอิงทั้งหมดไปยัง URL ของคำขอ
  • ข้อมูลที่ได้รับจะถูกจัดเก็บไว้ในแคช เว้นแต่จะระบุไว้เป็นอย่างอื่น
  • หากวิธีการร้องขอไม่ใช่แบบ HEAD เอนทิตีควรมีข้อความไฮเปอร์เท็กซ์ขนาดเล็กพร้อมไฮเปอร์ลิงก์ไปยัง URL ใหม่
  • หากได้รับรหัสสถานะ 301 ในการตอบสนองต่อคำขอประเภทใดก็ตามที่ไม่ใช่ GET หรือ HEAD ไคลเอนต์จะต้องสอบถามผู้ใช้ก่อนที่จะทำการเปลี่ยนเส้นทาง

ตัวอย่าง

คำขอจากลูกค้า:

GET /index.php HTTP / 1.1 Host : www.example.org

การตอบสนองจากเซิร์ฟเวอร์:

HTTP / 1.1 301 Moved Permanently Location : https://www.example.org/index.asp

การใช้ไฟล์ .htaccess

เพื่อแก้ไขปัญหาเกี่ยวกับไฟล์หรือไดเร็กทอรีที่ไม่มีอยู่จริงโดยใช้ไฟล์ .htaccess ที่แจกจ่าย:

เปลี่ยนเส้นทาง301 /calendar.html /calendar/ เปลี่ยนเส้นทาง301 /not_found.html / 

ต่อไปนี้เป็นตัวอย่างการใช้ ไฟล์ . htaccessเพื่อเปลี่ยนเส้นทาง URL ที่ไม่ปลอดภัยไปยังที่อยู่ที่มีความปลอดภัยโดยไม่ต้องมี "www" นำหน้า:

RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]RewriteCond %{HTTPS} on RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L]RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://example.com/$1 [R,L] 

โค้ด HTML แบบคงที่

การเปลี่ยนเส้นทางไดเร็กทอรีแบบกำหนดเอง โดยใช้ไฟล์ index.html:

< meta http-equiv = " refresh" content = " 0 ; url = / " / > <p> <a href="/"> หน้าหลัก</a> </p>

การใช้ภาษาโปรแกรม

ต่อไปนี้เป็นตัวอย่างการใช้งานPerl CGI.pm :

พิมพ์การเปลี่ยนเส้นทาง( "https://example.com/newpage.html" );

ต่อไปนี้เป็นตัวอย่างการใช้ การเปลี่ยนเส้นทาง (redirect) ของ PHP :

<?php header ( "Location: https://example.com/newpage.html" , true , 301 ); exit ;

นี่คือวิธีหนึ่งในการเปลี่ยนเส้นทางโดยใช้Express.js :

app.all ( " / old/url" , ( req , res ) => { res.redirect ( 301 , " / new /url" ); });

เซิร์ฟเวอร์แคช

การตั้งค่า nginxก็ง่ายเช่นเดียวกัน:

location /old/url/ { return 301 /new/url/ ; }

เครื่องมือค้นหา

ทั้งBingและGoogleแนะนำให้ใช้การเปลี่ยนเส้นทาง 301 เพื่อเปลี่ยน URL ของหน้าเว็บที่แสดงในผลการค้นหาของเครื่องมือค้นหา โดยที่ URL นั้นจะเปลี่ยนแปลงอย่างถาวรและจะไม่เปลี่ยนแปลงอีกในเร็วๆ นี้[ 2 ] [ 3 ]

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=HTTP_301&oldid=1345198988 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ HTTP 301

ใน เวิลด์ไวด์เว็บ HTTP 301 หรือ 301 Moved Permanently คือ รหัสสถานะ HTTP ที่ใช้สำหรับการเปลี่ยนเส้นทางถาวร หมายความว่าลิงก์หรือระเบียนไปยัง URL นี้...

การใช้ไฟล์ .htaccess

เพื่อแก้ไขปัญหาเกี่ยวกับไฟล์หรือไดเร็กทอรีที่ไม่มีอยู่จริงโดยใช้ไฟล์ .htaccess ที่แจกจ่าย:

โค้ด HTML แบบคงที่

การเปลี่ยนเส้นทางไดเร็กทอรีแบบกำหนดเอง โดยใช้ไฟล์ index.html:

การใช้ภาษาโปรแกรม

ต่อไปนี้เป็นตัวอย่างการใช้งาน Perl CGI.pm :