เว็บไซต์หลายแห่งใช้ลิงก์ที่คล้ายกับ http://www.yourdomain.com/index.html/ นี้ไปยังหน้าแรก ปัญหาคือลิงก์ภายนอกส่วนใหญ่ที่ชี้ไปยังหน้าแรกของเว็บไซต์ใช้ http://www.yourdomain.com/ ดังนั้นจึงกระจายน้ำหนักของลิงก์ที่ชี้ไปยังเว็บไซต์ เว็บมาสเตอร์ที่สังเกตเห็นสิ่งนี้และต้องการแก้ไขลิงก์ภายในของตนควรทำการเปลี่ยนเส้นทาง 301 จาก http://www.yourdomain.com/index.html ไปยัง http://www.yourdomain.com/ แต่หากควบคุมไม่ดีก็จะเกิดปัญหาการบังคับเลี้ยวเป็นวงกลม
เมื่อมีคนเข้าสู่ http://www.yourdomain.com/ และมาที่เว็บไซต์ของคุณ ระบบ Internet DNS จะช่วยให้เบราว์เซอร์ค้นหาเซิร์ฟเวอร์ที่เว็บไซต์นั้นตั้งอยู่ แล้วเซิร์ฟเวอร์ของเว็บไซต์จะตัดสินใจว่าจะแสดงอะไรบนเบราว์เซอร์นั้น จำเป็นต้องเรียกเซิร์ฟเวอร์บนฮาร์ดดิสก์ของเซิร์ฟเวอร์เว็บไซต์
เมื่อไม่ได้ระบุไฟล์ (เช่นในตัวอย่างข้างต้น ระบุเฉพาะชื่อโดเมน) เซิร์ฟเวอร์จะโหลดไฟล์ที่เรียกว่าไฟล์เริ่มต้น ชื่อไฟล์ของไฟล์นี้มักจะเป็น index.html/index.htm/index.shtml/index.php หรือ default.asp
จริงๆ แล้วชื่อไฟล์อาจเป็นอะไรก็ได้ แต่เว็บเซิร์ฟเวอร์ส่วนใหญ่จะใช้ชื่อไฟล์บางประเภทเป็นค่าเริ่มต้น CMS จำนวนมากจะแสดงหน้าแรกของเว็บไซต์สองรูปแบบ: http://www.yourdomain.com/ และ http://www.yourdomain.com/index.php ซึ่งจะทำให้เกิดปัญหา
ทุกหน้าของเว็บไซต์อาจเชื่อมโยงกับ http://www.yourdomain.com/index.php แต่เนื่องจากนิสัย ลิงก์หน้าแรกส่วนใหญ่ที่บุคคลที่สามมอบให้คุณชี้ไปที่ http://www.yourdomain.com / . หากเครื่องมือค้นหาเห็นหน้าแรกสองเวอร์ชันและคิดว่าเป็นไฟล์แยกกัน คุณจะมีปัญหาเนื้อหาที่ซ้ำกัน Google มีความชาญฉลาดในการแก้ปัญหานี้ แต่ทางที่ดีที่สุดคืออย่าพึ่งพาสิ่งเหล่านี้
คุณอาจตัดสินใจว่าวิธีแก้ปัญหาคือใช้การเปลี่ยนเส้นทาง 301 จาก http://www.yourdomain.com/index.php ไปยัง http://www.yourdomain.com/ ฟังดูดี แต่น่าเสียดายที่เกิดปัญหาใหญ่ เมื่อเซิร์ฟเวอร์เห็นคำขอ http://www.yourdomain.com/index.php และเห็นว่าควรเปลี่ยนเส้นทาง 301 ไปที่ http://www.yourdomain.com/ ก็ทำเช่นนั้น แต่เมื่อมันเรียก http://www.yourdomain.com/ เพื่อรับไฟล์เริ่มต้น (index.php) จะต้องเรียก http://www.yourdomain.com/index.php จากนั้นเซิร์ฟเวอร์จะเห็นคุณถึง เปลี่ยนเส้นทางไปที่ http://www.yourdomain.com/ ซึ่งจะสร้างวงวนไม่สิ้นสุด
วิธีการเปลี่ยนเส้นทางไฟล์เริ่มต้น
วิธีการต่อไปนี้อ้างอิงถึงตัวอย่าง index.php ก่อนหน้า คุณต้องใส่ชื่อไฟล์เริ่มต้นที่เหมาะสมสำหรับเซิร์ฟเวอร์ของคุณเอง
1. คัดลอกเนื้อหาของ index.php ไปยังไฟล์อื่น ในตัวอย่างนี้ฉันใช้ sitehome.php
2. สร้างคำสั่ง Apache DirectoryIndex สำหรับไดเร็กทอรีรากของไฟล์และตั้งค่าเป็น sitehome.php อย่าตั้งค่าคำสั่งนี้ที่ระดับเซิร์ฟเวอร์ทั้งหมด มิฉะนั้นปัญหาจะเกิดขึ้นในโฟลเดอร์อื่นที่ต้องใช้ index.php เป็นไฟล์เริ่มต้นในไดเร็กทอรี
3. ใส่: DirectoryIndex sitehome.php ในไฟล์ .htaccess ในไดเร็กทอรีรากของไฟล์ หรือหากคุณไม่ได้ใช้ไฟล์แยกกันสำหรับแต่ละไดเร็กทอรี ให้ใส่โค้ดต่อไปนี้ในไฟล์ httpd.com ของคุณ:
<ไดเรกทอรี/ของคุณ/document/root/examplesite.com/>
DirectoryIndex sitehome.php
</ไดเร็กทอรี>
4. ลบเนื้อหาของไฟล์ index.php ต้นฉบับ และใส่บรรทัดโค้ดต่อไปนี้:
- header("ตำแหน่ง:http://www.example.com");?>
การตั้งค่านี้ทำให้ index.php ไม่ใช่ไฟล์โฮมเพจของไดเร็กทอรี (นั่นคือชื่อไฟล์เริ่มต้น) บังคับให้อ่าน sitehome.php เมื่อมีคนป้อน URL ตามรูปแบบบัญญัติ ( http://www.yourdomain.com/ ) การร้องขอไปยัง index.php จากลิงก์เก่าจะถูกเปลี่ยนเส้นทางด้วย 301 ในขณะที่หลีกเลี่ยงการวนซ้ำไม่สิ้นสุด
หากคุณใช้ CMS หลังจากตั้งค่าข้างต้นแล้ว คุณต้องตรวจสอบให้แน่ใจด้วยว่าลิงก์เนื้อหาทั้งหมดชี้ไปที่ Canonical URL ( http://www.yourdomain.com/ ) หาก CMS เริ่มชี้ไปที่ http://www.yourdomain.com/sitehome.php ด้วยเหตุผลบางประการ ปัญหาการวนซ้ำจะเกิดขึ้นอีกครั้ง ทำให้คุณต้องทำกระบวนการทั้งหมดใหม่อีกครั้ง
บทความนี้เผยแพร่ครั้งแรกโดย Zhanjiang SEO http://www.wwoyy.com โปรดเก็บไว้สำหรับการพิมพ์ซ้ำ!
(บรรณาธิการ: Yang Yang) พื้นที่ส่วนตัวของผู้เขียน Tiandao Ruowen