อ่าน 2 นาที
HTTP 301
ใน เวิลด์ไวด์เว็บ HTTP 301 หรือ 301 Moved Permanently คือ รหัสสถานะ HTTP ที่ใช้สำหรับการเปลี่ยนเส้นทางถาวร หมายความว่าลิงก์หรือระเบียนไปยัง URL นี้...
HTTP 301
| ทศนิยม |
|---|
| วิธีการร้องขอ |
| ช่องส่วนหัว |
| รหัสสถานะการตอบสนอง |
| วิธีการควบคุมการเข้าถึงด้านความปลอดภัย |
| ช่องโหว่ด้านความปลอดภัย |
ในเวิลด์ไวด์เว็บ HTTP 301หรือ301 Moved Permanentlyคือรหัสสถานะ HTTPที่ใช้สำหรับการเปลี่ยนเส้นทางถาวร หมายความว่าลิงก์หรือระเบียนไปยังURL นี้ ควรได้รับการอัปเดตไปยังปลายทางที่ระบุในฟิลด์ Location ของการตอบสนองจากเซิร์ฟเวอร์ การเปลี่ยนเส้นทาง 301 ถือเป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับการอัปเกรดผู้ใช้จาก HTTP เป็น HTTPS
- หากไคลเอนต์มีฟังก์ชันแก้ไขลิงก์ ควรทำการอัปเดตข้อมูลอ้างอิงทั้งหมดไปยัง 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 ]
ดูเพิ่มเติม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ HTTP 301
ใน เวิลด์ไวด์เว็บ HTTP 301 หรือ 301 Moved Permanently คือ รหัสสถานะ HTTP ที่ใช้สำหรับการเปลี่ยนเส้นทางถาวร หมายความว่าลิงก์หรือระเบียนไปยัง URL นี้...
การใช้ไฟล์ .htaccess
เพื่อแก้ไขปัญหาเกี่ยวกับไฟล์หรือไดเร็กทอรีที่ไม่มีอยู่จริงโดยใช้ไฟล์ .htaccess ที่แจกจ่าย:
โค้ด HTML แบบคงที่
การเปลี่ยนเส้นทางไดเร็กทอรีแบบกำหนดเอง โดยใช้ไฟล์ index.html:
การใช้ภาษาโปรแกรม
ต่อไปนี้เป็นตัวอย่างการใช้งาน Perl CGI.pm :