Wordpress Permalinks ไม่ทำงานใน Apache2 Ubuntu 14.04


11

ในเครื่องของฉัน wordpress Permalinks ไม่ทำงาน หลังจากการวิจัยพบว่า wordpress ไม่ได้สร้างไฟล์. htaccess

สำหรับสิ่งนี้ฉันทำตามขั้นตอนด้านล่าง

  1. สร้าง.htaccessไฟล์ "" ด้วยตนเองและบันทึกไว้ในไดเรกทอรี WordPress หลักของคุณ (นี่เป็นโฟลเดอร์เดียวที่มีโฟลเดอร์ wp-admin, wp-include และ wp-content)

  2. ไปที่เทอร์มินัล Ubuntu และพิมพ์:

    sudo chown -v: www-data "/FilePathHere/.htaccess"

คุณควรเห็นบรรทัดที่พิมพ์ว่าเจ้าของไฟล์ (กลุ่ม) ถูกเปลี่ยนเป็น www-data (Apache2)

  1. ให้สิทธิ์เข้าถึง Apache2 ในการเขียนไฟล์:

    sudo chmod -v 664 "/FilePathHere/.htaccess"

คุณควรเห็นบรรทัดที่พิมพ์โดยบอกว่าโหมดของไฟล์นั้นยังคงอยู่

  1. ต่อไปเราต้องอนุญาตให้ WordPress เขียนไฟล์. htaccess โดยเปิดใช้งาน mod_write ในเซิร์ฟเวอร์ Apache2 พิมพ์สิ่งต่อไปนี้ในเทอร์มินัล:

    sudo a2enmod เขียนใหม่

คุณควรเห็นบรรทัดที่พิมพ์ออกมาโดยระบุว่ากำลังเปิดใช้งาน mod rewrite และเตือนให้คุณเริ่มเว็บเซิร์ฟเวอร์

  1. งั้นลองทำดู รีสตาร์ทเว็บเซิร์ฟเวอร์ Apache2 เพื่อให้การเปลี่ยนแปลงมีผลโดยพิมพ์:

    sudo /etc/init.d/apache2 รีสตาร์ท

เราทุกคนทำด้วยพรอมต์บรรทัดคำสั่ง คุณสามารถปิดหน้าต่างบรรทัดคำสั่งได้ทันที

  1. เข้าไปที่แผง admin WordPress ของคุณ (เช่นhttp://Domain/wp-admin) ไปที่การตั้งค่า -> Permalinks และเลือกรูปแบบ Permalink ที่คุณเลือก กดปุ่ม "บันทึกการเปลี่ยนแปลง"

ทุกขั้นตอนสำเร็จ แต่ถึงกระนั้น Permalinks ก็ไม่ทำงาน

จำเป็นต้องมีการตั้งค่าอื่นใดเพื่อให้สามารถทำงานลิงก์ถาวรได้อย่างถูกต้อง

คำตอบ:


16

ในประเภทอาคาร:

sudo gedit /etc/apache2/apache2.conf

หา:

<Directory /var/www/>

และให้แน่ใจว่าคำสั่งมีการตั้งค่าAllowOverrideAll


คุณเจ๋งมาก!
Hunter Leachman

4
sudo service apache2 restart --- หลังจากนั้นเพื่อให้การเปลี่ยนแปลงมีผล
Hunter Leachman

1
ผมต้องเปลี่ยนAllowOverideไปAllสำหรับ/var/www/html
HeatfanJohn

เพียงเพื่อให้ทราบว่านี่เป็นยังแก้ปัญหาถ้าเว็บไซต์ WordPress ของคุณทำงานจากที่แยกต่างหากไฟล์ conf ใน / เว็บไซต์ที่เปิดใช้งานและคุณมีอยู่แล้วAllowOverride Allภายใน<Directory />บล็อกในนั้นและมีความคิดให้กับตัวเอง แต่ทำไมฉันจะต้องแก้ไข / ฯลฯ /apache2/apache2.conf เช่นกัน…?
William Turrell

วิธีการแก้ปัญหาโดย SLH ยังคงใช้งานได้ในปี 2020
Armandt Burger

1

เพื่อติดตามการ.htaccessเปลี่ยนเส้นทางควรบอกว่า<mod_rewrite>ต้องเปิดใช้งานโมดูลของ Apache

คุณสามารถทำได้จากบรรทัดคำสั่งบนเซิร์ฟเวอร์โดยใช้คำสั่งต่อไปนี้:

sudo a2enmod rewrite
sudo service apache2 restart
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.