วิธีหยุด WordPress จากการเขียนทับไฟล์ .htaccess

เผยแพร่แล้ว: 2024-08-28

เป็นปัญหาทั่วไปที่ผู้ใช้ WordPress จำนวนมากเคยประสบ: WordPress เขียนทับหรือแก้ไขไฟล์ .htaccess ที่คุณกำหนดเองโดยไม่ได้ตั้งใจ ไม่ว่าจะด้วยตัวมันเองหรือผ่านปลั๊กอิน

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

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

แม้ว่าโดยทั่วไปแล้วสิ่งนี้จะไม่เป็นอันตราย แต่ก็อาจกลายเป็นปัญหาได้เมื่อปลั๊กอินหรือธีมของบุคคลที่สามเพิ่มโค้ดที่แทนที่การตั้งค่าเว็บไซต์หลัก ซึ่งอาจนำไปสู่ความเสี่ยงด้านความปลอดภัยหรือปัญหาด้านประสิทธิภาพ

เพื่อช่วยคุณป้องกันสถานการณ์ดังกล่าว เราจะแนะนำคุณเกี่ยวกับวิธีหยุดไฟล์ .htaccess ไม่ให้ถูกเขียนทับ เพื่อไม่รอช้า เรามาดำดิ่งกันเลย


สารบัญ
ไฟล์ .htaccess ทำงานอย่างไร และเหตุใด Wpoven จึงเขียนทับเนื้อหาของไฟล์ .htaccess ด้วยซ้ำ
จะหยุด WordPress ไม่ให้เขียนทับกฎของไฟล์ .htacess ได้อย่างไร
บทสรุป
คำถามที่พบบ่อย

ไฟล์ .htaccess ทำงานอย่างไร และเหตุใด Wpoven จึงเขียนทับเนื้อหาของไฟล์ .htaccess ด้วยซ้ำ

วิธีที่ดีที่สุดในการป้องกันไม่ให้ WordPress หรือปลั๊กอินเขียนทับไฟล์ .htaccess คือการเรียนรู้ว่าไฟล์ .htaccess ทำงานอย่างไรก่อน จะช่วยให้คุณทราบสาเหตุของปัญหาและทำความเข้าใจว่าไม่ควรทำอะไร

ดังนั้น ไฟล์ .htaccess จึงเหมือนกับหนังสือกฎที่ประกอบด้วยชุดคำสั่งว่าเว็บไซต์ของคุณควรมีลักษณะการทำงานอย่างไร

วัตถุประสงค์หลักคือเพื่อจัดการวิธีการแสดงเนื้อหาและวิธีการทำงานของปลั๊กอินบางตัว ตัวอย่างเช่น จากไฟล์ .htaccess คุณยังสามารถตั้งกฎการเปลี่ยนเส้นทาง 301 ได้อีกด้วย ซึ่งทำให้ URL เป็นมิตรกับ SEO และสะอาด

แต่ถ้าคุณหรือบุคคลอื่นพยายามอัปเดตเว็บไซต์ เช่น การเปลี่ยนโครงสร้าง URL WordPress จะอัปเดตไฟล์ .htaccess โดยอัตโนมัติเพื่อแสดงการเปลี่ยนแปลงเหล่านั้น

ในทำนองเดียวกัน เมื่อคุณติดตั้งปลั๊กอิน WordPress ที่คุณอาจใช้เพื่อเพิ่มคุณสมบัติพิเศษให้กับไซต์ของคุณสามารถเพิ่มกฎ/คำแนะนำของตนเองลงในไฟล์ได้

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

นี่อาจทำให้ลักษณะการทำงานหรือรูปลักษณ์เว็บไซต์ของคุณยุ่งเหยิง แม้ว่าคุณจะไม่ได้ตั้งใจให้มันเกิดขึ้นก็ตาม ดังนั้น หากต้องการหยุดหรือป้องกันสถานการณ์ดังกล่าว คุณต้องปฏิบัติตามคำแนะนำ/คำแนะนำด้านล่างนี้:


จะหยุด WordPress ไม่ให้เขียนทับกฎของไฟล์ .htacess ได้อย่างไร

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

นี่คือวิธีที่คุณสามารถทำได้

  • หลีกเลี่ยงการเพิ่มหรือแก้ไขกฎระหว่างเครื่องหมายหรือแท็ก WordPress
  • หลีกเลี่ยงการเพิ่มหรือแก้ไขกฎระหว่างเครื่องหมายปลั๊กอินหรือแท็ก
  • ตั้งค่าการอนุญาตไฟล์เพื่อหลีกเลี่ยงไม่ให้ WordPress เขียนทับไฟล์ .htaccess
  • หยุด WordPress ไม่ให้เขียนทับ .htacess โดยการใส่โค้ดลงในไฟล์ wp-config.php

1. หลีกเลี่ยงการเพิ่มหรือแก้ไขกฎระหว่างเครื่องหมายหรือแท็ก WordPress

ดังที่เราได้กล่าวไปแล้ว WordPress ใช้ไฟล์ .htaccess เพื่อจัดการการตั้งค่า WordPress บางอย่าง เช่น การสร้าง URL ที่มีโครงสร้างและเป็นมิตรกับ SEO

เมื่อคุณเปลี่ยนโครงสร้าง URL ซึ่งเรียกว่า "ลิงก์ถาวร" WordPress จะอัปเดตโค้ดในไฟล์นี้โดยอัตโนมัติเช่นกัน

การตั้งค่าลิงก์ถาวรเหล่านี้จะถูกบันทึกไว้ระหว่างแท็กหรือเครื่องหมาย WordPress สองตัว: # BEGIN WordPress และ # END WordPress

Avoid adding or editing rules between the WordPress markers or Tags
หลีกเลี่ยงการเพิ่มหรือแก้ไขกฎระหว่างเครื่องหมายหรือแท็ก WordPress

พื้นที่เฉพาะระหว่างแท็ก WordPress ทั้งสองนี้สงวนไว้สำหรับ WordPress อย่างสมบูรณ์ และยังเตือนคุณด้วยว่าการเปลี่ยนแปลงใด ๆ ที่คุณทำระหว่างเครื่องหมายเหล่านี้จะถูกเขียนทับในครั้งถัดไปที่ WordPress อัปเดตไฟล์

สิ่งที่ควรทำ : แต่ส่วนที่ดีที่สุดคือ WordPress จะไม่แตะต้องโค้ดใดๆ ที่คุณเพิ่มไว้นอกเครื่องหมายหรือแท็กเหล่านี้ หมายความว่าหากคุณต้องการเพิ่มโค้ดที่กำหนดเองใดๆ ให้ลองแทรกหรือเพิ่มไว้ที่ด้านบนของไฟล์ ก่อนเครื่องหมาย # BEGIN WordPress

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


WPOven

2. หลีกเลี่ยงการเพิ่มหรือแก้ไขกฎระหว่างเครื่องหมายปลั๊กอินหรือแท็ก

เช่นเดียวกับเครื่องหมาย WordPress คุณต้องหลีกเลี่ยงการแก้ไขหรือเพิ่มกฎระหว่างเครื่องหมายปลั๊กอินหรือแท็ก

เนื่องจากปลั๊กอินสามารถเพิ่มกฎของตนเองลงในไฟล์ .htaccess ที่คล้ายกับ WordPress และเมื่อทำเช่นนั้น ปลั๊กอินจะสงวนพื้นที่ด้วยเครื่องหมายพิเศษหรือแท็กที่มีชื่อของปลั๊กอิน

ตัวอย่างเช่น หากปลั๊กอินชื่อ “WProcket” เพิ่มกฎ มันจะทำเครื่องหมายด้วย # BEGIN WP Rocke t Browser Cache และ # END WP Rocket Browser Cache

Avoid adding or editing rules between the Plugin markers or Tags
หลีกเลี่ยงการเพิ่มหรือแก้ไขกฎระหว่างเครื่องหมายปลั๊กอินหรือแท็ก

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

ดังนั้น หากคุณมีกฎที่กำหนดเองใดๆ ที่คุณไม่อยากเสียไป อย่าวางไว้ระหว่างเครื่องหมายเฉพาะปลั๊กอินเหล่านี้

เพิ่มกฎที่กำหนดเองโดยใช้เครื่องหมายหรือแท็กที่กำหนดเอง

คุณสามารถสร้างเครื่องหมายหรือแท็กเพื่อเพิ่มกฎที่กำหนดเองที่คุณมีและแยกออกจากส่วนที่สร้างโดย WordPress และปลั๊กอินแทน

วิธีนี้จะรับประกันได้ว่าการแก้ไขหรือการเปลี่ยนแปลงใด ๆ ที่เกิดขึ้นกับการดูแลระบบ WordPress หรือการตั้งค่าปลั๊กอินจะไม่เขียนทับส่วนนี้

ต่อไปนี้คือวิธีที่คุณสามารถทำได้:

สมมติว่าคุณต้องเปลี่ยนเส้นทางคำขอใดๆ ที่สร้าง yourdomain.com ไปที่ https://www.yourdomain.com เพื่อให้ผู้เยี่ยมชมของคุณไปที่ไซต์เวอร์ชันของคุณโดยมี "www" ใน URL เสมอ

หากต้องการใช้กฎที่กำหนดเองนี้ ให้ใช้แท็ก # BEGIN Custom Rules # END Custom Rules ที่ด้านบนของไฟล์ . .htaccess จากนั้นเพิ่มคำแนะนำหรือกฎที่กำหนดเองภายในเครื่องหมายเหล่านี้

มันจะเป็นดังนี้:

# BEGIN Custom Rules

RewriteEngine On

RewriteCond %{HTTP_HOST} ^yourdomain\.com$

RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R=301,L]

# END Custom Rules


อ่าน: ไฟล์ WordPress .htaccess: จะสร้างและแก้ไขได้อย่างไร


3. ตั้งค่าการอนุญาตไฟล์เพื่อหลีกเลี่ยงไม่ให้ WordPress เขียนทับไฟล์ .htaccess

วิธีที่สามที่สามารถช่วยคุณป้องกันไม่ให้ WordPress เขียนทับไฟล์ .htaccess คือการตั้งค่าการอนุญาตของไฟล์เป็น "อ่านอย่างเดียว"

ในการดำเนินการนี้ คุณต้องเข้าถึงไฟล์ .htaccess โดยใช้ไคลเอนต์ FTP หรือตัวจัดการไฟล์ที่ผู้ให้บริการโฮสติ้ง WordPress ของคุณให้มา

เมื่อคุณเข้าสู่ระบบไคลเอนต์ FTP หรือตัวจัดการไฟล์แล้ว ให้มองหาไฟล์ .htaccess ซึ่งมักจะอยู่ในไดเร็กทอรีรากของการติดตั้ง WordPress ของคุณ

จากนั้น คลิกขวาที่ไฟล์และเลือก 'สิทธิ์ของไฟล์'

Set file permission to avoid WordPress from overwriting .htaccess file
ตั้งค่าการอนุญาตไฟล์เพื่อหลีกเลี่ยงไม่ให้ WordPress เขียนทับไฟล์ .htaccess

หน้าต่างป๊อปอัปจะปรากฏขึ้นพร้อมกับแอตทริบิวต์ของไฟล์ทั้งหมด ซึ่งโดยทั่วไปการตั้งค่าเริ่มต้นคือ 644 แต่คุณสามารถเปลี่ยนเป็น 444 ได้โดยการป้อนค่าลงในฟิลด์ 'ค่าตัวเลข' โดยตรง หรือตรวจสอบให้แน่ใจว่ามีเพียง 'อ่าน' เท่านั้น เลือกกล่องแล้ว

Set file attributes in the .htaccess file to read-only.
ตั้งค่าแอตทริบิวต์ของไฟล์ในไฟล์ .htaccess เป็นแบบอ่านอย่างเดียว

ด้วยการตั้งค่าการอนุญาตไฟล์ .htaccess เป็น 444 (อ่านอย่างเดียว) ไฟล์จะได้รับการปกป้องจากการแก้ไข

หมายเหตุ: โปรดจำไว้เสมอว่าการดำเนินการนี้จะไม่อนุญาตให้คุณทำการเปลี่ยนแปลงใด ๆ กับไฟล์ หากคุณต้องการอัปเดตไฟล์ คุณจะต้องเปลี่ยนการอนุญาตกลับเป็น 644 ชั่วคราว


4. หยุดไม่ให้ WordPress เขียนทับ .htacess โดยการใส่โค้ดลงในไฟล์ wp-config.php

วิธีสุดท้ายที่คุณนำไปใช้ได้คือการแทรกโค้ดต่อไปนี้ลงในไฟล์ wp-config.php ของคุณ

add_filter('got_rewrite', '__return_false');

วิธีการนี้มีประโยชน์หากคุณต้องการป้องกันไม่ให้ WordPress แก้ไขไฟล์ .htaccess โดยไม่ส่งผลกระทบต่อปลั๊กอินของคุณ

หมายเหตุ: การแก้ไขหรือการจัดการไฟล์ WordPress หลักอาจมีความเสี่ยงและอาจทำให้เว็บไซต์ของคุณเสียหายได้หากมีข้อผิดพลาดเกิดขึ้น ขอแนะนำให้ขอความช่วยเหลือจากผู้เชี่ยวชาญหรือติดต่อนักพัฒนาเว็บของคุณ

ตอนนี้เพื่อดำเนินการนี้

1. เข้าสู่ระบบ cPanel หรือ FTP ของคุณโดยใช้ข้อมูลประจำตัวของคุณ

2. ไปที่ไดเร็กทอรีรากของเว็บไซต์ของคุณและค้นหาไฟล์ wp-config.php

3. เปิดไฟล์ wp-config.php เพื่อแก้ไข

Opening Wp-config.php file
กำลังเปิดไฟล์ Wp-config.php

4. เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ด้วยตนเองตามที่แสดงในภาพ

add_filter('got_rewrite', '__return_false');

Inserting code in the Wp-config.php file to stop WordPress from overwriting the .htaccess file
การแทรกโค้ดในไฟล์ Wp-config.php เพื่อหยุดไม่ให้ WordPress เขียนทับไฟล์ .htaccess

5. หลังจากเพิ่มโค้ดแล้ว ให้บันทึกไฟล์

6. เมื่อบันทึกแล้ว WordPress จะไม่สามารถแก้ไขไฟล์ได้อีกต่อไป รวมถึงการเปลี่ยนแปลงรูปแบบ URL หรือการตั้งค่าอื่น ๆ ที่เกี่ยวข้อง

เมื่อคุณปฏิบัติตามวิธีนี้ WordPress จะไม่สามารถแก้ไขหรือเขียนทับไฟล์ .htaccess ได้


WPOven Dedicated Hosting

บทสรุป

มักกล่าวกันว่าการป้องกันย่อมดีกว่าการรักษา ในทำนองเดียวกัน คุณสามารถใช้มาตรการป้องกัน เช่น หลีกเลี่ยงการเพิ่มหรือแก้ไขกฎระหว่างเครื่องหมายหรือแท็ก WordPress รวมถึงระหว่างเครื่องหมายและแท็กปลั๊กอิน WordPress

นอกจากนี้ คุณยังสามารถตั้งกฎบางอย่างและใช้วิธีอ่านอย่างเดียวเพื่อไม่อนุญาตให้แก้ไขไฟล์ . .htaccess โดยสิ้นเชิง

เราหวังว่าวิธีการข้างต้นจะช่วยคุณหยุดไม่ให้ WordPress เขียนทับไฟล์ . .htaccess หากคุณมีคำถามใด ๆ เกี่ยวกับโพสต์นี้ โปรดแจ้งให้เราทราบในส่วนความคิดเห็นด้านล่าง


คำถามที่พบบ่อย

กฎ .htaccess ที่กำหนดเองของฉันจะได้รับผลกระทบจากกระบวนการอัปเกรด WordPress หรือไม่

ไม่ กฎ .htaccess ที่คุณกำหนดเองจะไม่ได้รับผลกระทบจากการอัพเกรด WordPress หากวางไว้นอกเครื่องหมาย # BEGIN WordPress และ # END WordPress WordPress แก้ไขโค้ดระหว่างเครื่องหมายเหล่านี้เท่านั้น

การใช้ .htaccess แบบกำหนดเองบางส่วนมีข้อเสียหรือไม่

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

ฉันจะแน่ใจได้อย่างไรว่าเมื่อฉันอัปเดตปลั๊กอิน กฎ .htaccess ส่วนตัวของฉันจะไม่สูญหาย

เพื่อรักษากฎ .htaccess ที่คุณกำหนดเองให้ปลอดภัยเมื่ออัปเดตปลั๊กอิน ตรวจสอบให้แน่ใจว่าได้วางกฎของคุณไว้นอกเครื่องหมาย # BEGIN และ # END ที่ WordPress และปลั๊กอินใช้ คุณยังสามารถสร้างเครื่องหมายของคุณเองเพื่อแยกกฎของคุณออกจากกัน สำรองไฟล์ .htaccess ของคุณเป็นประจำ เพื่อให้คุณสามารถกู้คืนได้อย่างง่ายดายหากจำเป็น หลังจากอัปเดตปลั๊กอินแล้ว ให้ตรวจสอบไฟล์ .htaccess เพื่อให้แน่ใจว่ากฎที่คุณกำหนดเองยังคงอยู่และไม่สูญหาย