ฉันพยายามตั้งค่าเซิร์ฟเวอร์ด้วยชื่อโดเมน แต่ได้รับข้อผิดพลาด 301 เมื่อพิมพ์ URL ในเบราว์เซอร์ (http://localhost ทำงานได้ดี แต่ http://example.com ให้ข้อผิดพลาด 301)
ฉันมีเซิร์ฟเวอร์ DNS ชี้ไปที่ IP สาธารณะที่ถูกต้อง และเราเตอร์ตั้งค่าให้ส่งต่อพอร์ตขาเข้า 80 ไปยัง 80 ในเครื่องไปยัง IP ส่วนตัวที่ถูกต้อง
apache2.conf ได้รับการแก้ไขดังนี้
#<ไดเร็กทอรี /var/www/>
# ดัชนีตัวเลือก FollowSymLinks
# AllowOverride ไม่มี
#ต้องได้รับทั้งหมด
#</ไดเร็กทอรี>
<ไดเร็กทอรี /srv/>
    ตัวเลือก FollowSymLinks
    AllowOverride ไม่มี
    ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>
นี่เป็นเพราะ Wordpress ที่ติดตั้งตามคำแนะนำ /srv/www/เวิร์ดเพรส/ และไม่ต้องการตำแหน่ง Apache เริ่มต้นอื่นสำหรับเว็บไซต์....
wordpress.conf ใน /etc/apache2/sites-enabled/ โฟลเดอร์มีลักษณะดังต่อไปนี้:
<VirtualHost *:80>
    ServerName example.com
    ServerAlias *.example.com
    DocumentRoot /srv/www/wordpress
    <Directory /srv/www/wordpress>
        Options FollowSymLinks
        AllowOverride Limit Options FileInfo
        DirectoryIndex index.php
        Require all granted
    </Directory>
    <Directory /srv/www/wordpress/wp-content>
        Options FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>
ฉันใช้ Ubuntu 20.04, Apache 2.4.41, Wordpress 5.8.1
อัปเดต 23 กันยายน 2021
แก้ไขชื่อเรื่องของคำถามนี้จาก "การรับข้อผิดพลาด 301 บนเซิร์ฟเวอร์ Apache" เป็น "Localhost ไม่สามารถเข้าถึงได้ด้วย Wordpress" ก่อนหน้านี้ ฉันมักจะได้รับการตอบกลับว่า "หมดเวลา" เมื่อป้อนโดเมนของฉัน (http://example.com) จากเครือข่ายท้องถิ่นของฉันที่เซิร์ฟเวอร์ทำงานอยู่ ข้อผิดพลาด 301 เกิดขึ้นเมื่อมีผู้อื่นเข้าถึงโดเมนของฉันในขณะนั้น ภายนอก. ตอนนี้ฉันพบวิธีเข้าถึงโดเมนของฉันจากภายนอกแล้ว ข้อผิดพลาดก็สอดคล้องกัน: "Localhost is unreachable" อย่างไรก็ตาม ดูเหมือนว่าจะเกิดขึ้นบนไซต์ Wordpress เท่านั้น เมื่อฉันเข้าถึงไซต์เริ่มต้น "ใช้งานได้" ก็ไม่เป็นไร (ฉันไม่ได้แสดงความคิดเห็นในไฟล์ apache2.conf บรรทัดที่ฉันเน้นไว้ก่อนหน้านี้) นี่อาจเป็นเพราะ Wordpress ใช้ฐานข้อมูลและเป็นค่าเริ่มต้น ชื่อโฮสต์ สำหรับผู้ใช้ที่เป็น "โลคอลโฮสต์"?
[สำหรับผู้ที่พยายามป้อนโดเมนที่ชี้ไปยังเซิร์ฟเวอร์ของตน: หากคุณทำสิ่งนี้จากเครือข่ายท้องถิ่นเดียวกันกับที่เซิร์ฟเวอร์ตั้งอยู่ การดำเนินการนี้จะไม่ทำงาน (ค้นหา "NAT loopback" สำหรับข้อมูลเพิ่มเติม) นั่นไม่ใช่การอภิปรายที่นี่ แต่ฉันพูดถึงเพราะมันจมเวลาไปมาก โลคัลโฮสต์ ทำงาน, แก้ไข / etc / โฮสต์ สามารถทำกลโกงบางอย่างได้ -- ยังไม่จำลองคำขอภายนอกจากความรู้ของฉัน -- แต่ท้ายที่สุด การใช้ชื่อโดเมนจะไม่ได้ผล]