กูเกิลตรวจพบสิ่งสำคัญของการเพิ่มขึ้นของเพจที่หาไม่พบ 404 (Page Not Found) error

เกริ่นนำ ยินดีต้อนรับสู่เวบไซต์ credit-thai.com กันอีกครั้งของวันจันทร์เริ่มอาทิตย์ใหม่ หลังจากห่างหายกันไปหลายวัน ผู้เขียนเองก็เพิ่งได้มีโอกาสเข้าไปที่บจก.ไทย พรอสเพอรัส ไอที อีกครั้งเนื่องจากมีงานด่วนเข้ามา พอเริ่มเคลียร์งานได้บ้างก็ลองเข้าไปดูข้อมูลใน Webmaster Tool ของกูเกิลซะหน่อย เปิดเข้าไปงานเข้าละสิ มีข้อความเตือน "กูเกิลตรวจพบสิ่งสำคัญของการเพิ่มขึ้นของเพจที่หาไม่พบ 404 (Page Not Found) error"

ปัญหา ผู้เขียนเคยพบเจอปัญหานี้มาแล้วก็มองข้ามไป จริงๆพยายามค้นหาวิธีแก้อยู่เป็นเดือนๆ ก็ยังหาคำตอบไม่ได้ มาครั้งนี้กูเกิลยื่นข้อสังเกตมาว่า 404 error มันมากไปแล้วนะ เวบคุณอาจจะไม่ได้รับการรวบรวมข้อมูลจากเราอีก หากไม่แก้ไข
จีพีเอสติดตามรถยนต์

วิธีทำ พอผู้เขียนเข้าไปดูรายละเอียดข้อความ error 404 พบกว่า 190 ลิงค์ งานยุ่งละสิ แถม deep url ก็ซับซ้อนกว่าที่จะอ่านเข้าใจ เป็นลิงค์ที่สร้างด้วยโปรแกรม เอาไงกันดีล่ะ นี่แหล่ะที่ผู้เขียนได้เกริ่นไว้ข้างต้น ข้อผิดพลาด 404 ที่เห็นก่อนหน้านี้มันไม่เยอะมากก็ยังไม่ได้แก้ พอครั้งนี้ก็ยังไม่ได้ค้นหาวิธีไว้แต่แรก

จีพีเอสติดตามรถ

ดูรายละเอียดลิงค์ที่หาไม่เจอ

งั้นเราลองไปดู url จริงกันดีก่อนกว่า


http://www.vanvip.co/go.php?lng=th
http://www.vanvip.co/go.php?pg=6&id=68&PHPSESSID=cc5e04ad2d7d7f60542799d9f656ba64
http://www.vanvip.co/go.php?lng=fr&PHPSESSID=3744ca6b933c1f2c9fbebc378f705011

ดูเยอะแยะมากมายจริงๆ งานนี้มันต้อง RewriteCond กับ RewriteRule ในไฟล์ htaccess เพื่อ redirect หน้าที่หาไม่พบอย่างเดียว

ก่อนอื่นไปทำความเข้าใจกันก่อน RewriteRule ใช้เฉพาะค้นหา path ของ url  หรือค้นหา protocol, hostname, query string และข้อมูลอื่นๆ เช่น ip address หรือ browser หรือ referer

ส่วน RewriteCond ใช้ค้นหา query string



จากนั้นก็มาแยกว่าส่วนของ url คือตรงไหน ส่วนที่จะใช้ RewriteRule ก็คือ http://www.used-cars-thailand.com/go.php ส่วนที่เหลือเป็น query string


lng=th
pg=6&id=68&PHPSESSID=cc5e04ad2d7d7f60542799d9f656ba64
lng=fr&PHPSESSID=3744ca6b933c1f2c9fbebc378f705011

สำหรับวิธีที่ผู้เขียนใช้แก้ปัญหานี้ก็คือรวบรวม ตัวอักษรที่ต้องใช้ร่วมกันในการค้นหาคือ pg กับ lng ใส่ไว้ใน RewriteCond ส่วน url ก็ http://www.vanvip.co/go.php ใส่ไว้ใน RewriteRule สำหรับตัวอย่างข้างต้นผู้เขียนสั่งให้ redirect แบบถาวรไปยังหน้าแรกของไซต์


http://www.vanvip.co/go.php?lng=th
http://www.vanvip.co/go.php?pg=6&id=68&PHPSESSID=cc5e04ad2d7d7f60542799d9f656ba64
http://www.vanvip.co/go.php?lng=fr&PHPSESSID=3744ca6b933c1f2c9fbebc378f705011


สรุป หากว่าเราไม่ต้องการระบุ path แค่เจอข้อความที่ต้องการบน url ก็เปลี่ยน RewriteRule ตามข้างล่าง ตัวอย่างต้องการให้ redirect ไปยังหน้า contact-us ก็สามารถทำได้ตามตัวอย่าง

RewriteRule .* /contact-us/? [R=301,L]
.* หมายถึง path อะไรก็ได้ ห้ามลืมเครื่องหมาย ?

ก็เป็นอันจบขั้นตอนการแก้ไข 404 page not found error คงต้องอาศัยเวลาในการทำความเข้าใจกันพอสมควร หากต้องการแบบด่วนๆ แก้ปัญหาได้ทันทีก็สามารถใช้วิธีที่ผู้เขียนแนะนำข้างต้นได้ 




Previous
Next Post »