Apache .htaccess 301 redirect เป็นการเปลี่ยนเส้นทางฝั่งเซิร์ฟเวอร์และเป็นการเปลี่ยนเส้นทางแบบถาวร
.htaccessไฟล์เป็นไฟล์การกำหนดค่าเซิร์ฟเวอร์ Apache .htaccesไฟล์ s ถูกนำมาใช้ต่อไดเรกทอรี
การใช้ไฟล์. htaccessลดประสิทธิภาพของเซิร์ฟเวอร์ ควรหลีกเลี่ยงการใช้. htaccessเมื่อคุณเข้าถึงไฟล์คอนฟิกูเรชันหลักของเซิร์ฟเวอร์ Apache httpd.conf เว็บไซต์โฮสติ้งที่ใช้ร่วมกันมักจะไม่สามารถเข้าถึงไฟล์ httpd.confและควรใช้ไฟล์. htaccess
การตอบสนองการเปลี่ยนเส้นทาง 301 นี้แจ้งให้เครื่องมือค้นหาทราบว่าหน้าเว็บได้ย้ายจาก URL เก่าไปยัง URL ใหม่อย่างถาวร
เครื่องมือค้นหายังโอนอันดับของหน้า URL เก่าไปยัง URL ใหม่
เพิ่มรหัสนี้หรือสร้างไฟล์. htaccessใหม่ในไดเร็กทอรีold-page.html
เปลี่ยนเส้นทางแบบถาวรจากเก่า page.htmlไปใหม่ page.html
.htaccess:
Redirect 301 /old-page.html http://www.mydomain.com/new-page.html
เปลี่ยนเส้นทางแบบถาวรจากหน้าเว็บโดเมนทั้งหมดจะnewdomain.com
ไฟล์. htaccessควรอยู่ในไดเรกทอรีรากของเว็บไซต์เก่า
.htaccess:
Redirect 301 / http://www.newdomain.com/
หากคุณอัปโหลดไฟล์. htaccessไปยังไดเร็กทอรีold-page.htmlและการเปลี่ยนเส้นทางไม่ทำงานโดยปกติหมายความว่าไฟล์. htaccessไม่ได้เปิดใช้งานในไฟล์คอนฟิกูเรชันของเซิร์ฟเวอร์ Apache httpd.conf
.htaccessไฟล์สามารถเปิดใช้งานได้โดยการเพิ่มเซิร์ฟเวอร์ของ Apache httpd.confไฟล์
httpd.conf:
<Directory /srv/www/rapidtables.org/public_html/web/dev/redirect/
AllowOverride All
</Directory/
สำคัญ: การตั้งค่านี้จะไม่แนะนำใหม่เนื่องจากทำให้เซิร์ฟเวอร์ Apache ทำงานช้าลง
หากคุณได้รับอนุญาตให้เปลี่ยนไฟล์ httpd.confคุณควรเพิ่มคำสั่งRedirectในhttpd.confแทนไฟล์. htaccess
ตรวจสอบว่าไลบรารีmod_rewrite.soของโมดูลเขียนซ้ำถูกโหลดโดยเซิร์ฟเวอร์ apache หรือไม่:
$ apache2ctl -M
เพิ่มรหัสต่อไปนี้ในไฟล์ httpd.conf
ถ้าmod_rewrite.soไลบรารีของโมดูลเขียนซ้ำไม่พร้อมใช้งานให้ยกเลิกการใส่เครื่องหมายในบรรทัดแรกเพื่อโหลดโมดูลการเขียนซ้ำ
httpd.conf:
# LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
<Directory /srv/www/rapidtables.org/public_html/web/dev/redirect/
Redirect 301 /old-page.html http://www.mydomain.com/new-page.html
</Directory/
อย่าลืมรีสตาร์ทเซิร์ฟเวอร์ Apache หลังจากอัพเดต httpd.conf:
$ sudo /etc/init.d/apache2 restart