การวาง HTML จากหน้าการเปลี่ยนเส้นทาง 301 ในเอกสารจะทำหน้าที่เหมือนกับการเปลี่ยนเส้นทาง 301 จริงหรือไม่


15

ในโปรแกรมดีบั๊กของเว็บ html ของหน้าการเปลี่ยนเส้นทาง 301 จะแสดงเป็น:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.website.com/webpage.htm">here</a>.</p>
</body></html>

ฉันต้องเปลี่ยนเส้นทางหน้า html โดยไม่สนับสนุนเซิร์ฟเวอร์ หากฉันแทนที่หน้า html ด้วยรหัสข้างต้นมันจะทำงานเช่นเดียวกับการเขียน 301 การเปลี่ยนเส้นทางใน. htaccess บน apache หรือไม่ ฉันค้นหาสิ่งนี้บน google แต่เว็บไซต์ที่พูดถึงการเปลี่ยนเส้นทาง 301 รายการไม่ครอบคลุมตัวเลือกนี้สำหรับการเปลี่ยนเส้นทางหน้า html

คำตอบ:


18

เป็นการดีที่คุณจะส่งรหัสสถานะการตอบสนอง 301 HTTP ถ้าคุณไม่สามารถทำเช่นนั้นรีเฟรชเมตาว่าเป็นความประสงค์ได้ทันทีนอกจากนี้ยังมีการทำงานและจะนับเป็น 301 หรือ 302 เปลี่ยนเส้นทางขึ้นอยู่กับเครื่องมือค้นหา

<meta http-equiv="refresh" content="0;url=http://example.com/new.html">

อัตราการรีเฟรชจะต้องเป็นศูนย์เพื่อให้การเปลี่ยนเส้นทางมีขนาด 30x


ขอบคุณบทความนั้นเป็นข้อต่อกระบวนการที่ดีจริงๆ เมตาช้า 0 รีเฟรชภายในตัวอย่าง html ของฉันด้านบน = 301 คนยากจน
JMC

10

ไม่เพียงแค่แทนที่ HTML ด้วยตัวอย่างของคุณจะไม่ได้ผลตามที่ต้องการ มันจะแสดงหน้านั้นให้ผู้ใช้ทราบทันทีเนื่องจาก Apache จะส่งรหัสสถานะ '200' ไปพร้อมกับมัน ผู้ใช้จะสามารถคลิกที่ลิงค์เพื่อค้นหาหน้า แต่จะไม่เกิดขึ้นโดยอัตโนมัติและแมงมุมจะไม่ทราบว่าคุณหมายถึงการเปลี่ยนเส้นทางถาวรของทรัพยากร

คุณจะต้องใช้คำสั่งRedirectหรือ _mod_rewrite_ ที่เหมาะสมในไฟล์. htaccess หรือ Apache conf ของคุณ

หรือถ้าคุณใช้ PHP จริง ๆ หรือสิ่งที่คล้ายกันคุณสามารถตั้งค่าโค้ดส่งคืนเป็น 301 ให้ส่งออกหัวข้อการตอบสนองตำแหน่งจากนั้นโซลูชันที่ใช้เพจของคุณจะทำงาน ใน PHP มันจะเป็นดังนี้:

<?php
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: http://www.new-url.com" );

+1 คะแนนที่ดีเกี่ยวกับรหัสสถานะ 200 ไม่ได้คิดเรื่องนั้น น่าเสียดายที่เป็นเซิร์ฟเวอร์ IIS และฉันไม่สามารถเข้าถึงได้ลึกกว่า ftp หน้าดังกล่าวเป็น. html ดังนั้นการเปลี่ยนเส้นทาง asp จะไม่ดำเนินการ
JMC

ในกรณีนี้คำตอบของ John Conde นั้นดีที่สุด - ฉันลืมเกี่ยวกับความเท่าเทียมกันของการรีเฟรชเมตา
Hissohathair

3

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

เพื่อรักษาอันดับของหน้ารหัสสถานะ 301 มีความสำคัญอย่างยิ่ง การเพิ่มเมตาแท็กการรีเฟรชเป็นตัวเลือกที่ดีและอาจช่วยได้ในกรณีส่วนใหญ่ (ตามคำตอบของ John) แต่คุณอาจไม่สามารถรับประกันได้ว่าเครื่องมือค้นหาจะยอมรับว่าเป็นการเปลี่ยนเส้นทาง 301 ในอนาคต การเพิ่มการเปลี่ยนเส้นทางที่เหมาะสมไปยัง. htaccess (หรือไฟล์ Apache conf) ของคุณจะเป็นตัวเลือกที่ดีที่สุดของคุณเพื่อรับประกันว่าจะส่งรหัสสถานะ 301

แก้ไข:

=======================

สำหรับเว็บไซต์ IIS7 ตราบใดที่มีการติดตั้งโมดูล IIS URL Rewrite คุณสามารถสร้างกฎการเปลี่ยนเส้นทางใน web.config สำหรับเว็บไซต์ กฎเหล่านี้จะใช้กับไฟล์. html เช่นกัน ข้อมูลเพิ่มเติมที่นี่:

http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/

=======================

อีกทางเลือกหนึ่งหากเว็บโฮสต์ของคุณไม่มีความสามารถในการ. htaccess / mod_rewrite อาจเป็นการเปลี่ยนโฮสต์เว็บที่คุณใช้ซึ่งคุณสามารถตั้งค่าการเปลี่ยนเส้นทางฝั่งเซิร์ฟเวอร์ ตราบใดที่ไซต์ถูกย้ายอย่างเหมาะสมผู้ใช้ของคุณก็ควรจะราบรื่น วิธีการนี้จะใช้สำหรับกรณีร้ายแรงหากการรักษาอันดับหน้ามีความสำคัญอย่างยิ่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.