เกริ่นนำ ยินดีต้อนรับสู่เวบไซต์ credit-thai.com กันอีกครั้งของวันจันทร์เริ่มอาทิตย์ใหม่ หลังจากห่างหายกันไปหลายวัน ผู้เขียนเองก็เพิ่งได้มีโอกาสเข้าไปที่บจก.ไทย พรอสเพอรัส ไอที อีกครั้งเนื่องจากมีงานด่วนเข้ามา พอเริ่มเคลียร์งานได้บ้างก็ลองเข้าไปดูข้อมูลใน Webmaster Tool ของกูเกิลซะหน่อย เปิดเข้าไปงานเข้าละสิ มีข้อความเตือน "กูเกิลตรวจพบสิ่งสำคัญของการเพิ่มขึ้นของเพจที่หาไม่พบ 404 (Page Not Found) error"
ปัญหา ผู้เขียนเคยพบเจอปัญหานี้มาแล้วก็มองข้ามไป จริงๆพยายามค้นหาวิธีแก้อยู่เป็นเดือนๆ ก็ยังหาคำตอบไม่ได้ มาครั้งนี้กูเกิลยื่นข้อสังเกตมาว่า 404 error มันมากไปแล้วนะ เวบคุณอาจจะไม่ได้รับการรวบรวมข้อมูลจากเราอีก หากไม่แก้ไข
ดูรายละเอียดลิงค์ที่หาไม่เจอ
งั้นเราลองไปดู 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 คงต้องอาศัยเวลาในการทำความเข้าใจกันพอสมควร หากต้องการแบบด่วนๆ แก้ปัญหาได้ทันทีก็สามารถใช้วิธีที่ผู้เขียนแนะนำข้างต้นได้
Sign up here with your email
ConversionConversion EmoticonEmoticon