ฉันจะกำหนดค่าโฮสต์เสมือนเริ่มต้นส่งคืน 404 หัวข้อใน apache ได้อย่างไร


14

ฉันรู้ว่ามีการถามคำถามที่คล้ายกัน แต่คำตอบที่ใช้ได้ยังไม่ชัดเจนดังนั้นโปรดอดทนกับฉัน

หลังจากตั้งค่าสองสาม<VirtualHost>ใน apache ฉันต้องการกำหนดค่า_default_ ServerName เพื่อให้ส่งคืนข้อความ 404 นั่นคือยกเว้นว่ามีบางโดเมนที่พร้อมใช้งานอย่างชัดเจนถูกระบุไว้ในส่วนหัวของ http โฮสต์คืน 404 (ในทางตรงข้ามบางสิ่งบางอย่างที่ดีกว่าชี้ไปที่ไดเรกทอรีไม่มีอยู่ตอนนี้)

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.

คำตอบ:


27

คุณลอง:

เปลี่ยนเส้นทาง 404 /
ErrorDocument 404 "ไม่พบหน้า"

ใน VirtualHost เริ่มต้น


ขอบคุณที่ทำ! เนื่องจากเป็นการล้างความเชี่ยวชาญระดับต่ำของฉันฉันอาจเพิ่มสำหรับมือใหม่ของฉันที่เซิร์ฟเวอร์เริ่มต้นควรปรากฏขึ้นก่อน (นี่ใช้เวลา
ซักพักนึง

โปรดทราบว่าหากErrorDocumentจุดไปยังไฟล์หรือ URL ภายใน vhost นั้นจะส่งคืน 404 ซึ่งจะเป็นการสร้างข้อผิดพลาดเซิร์ฟเวอร์ภายใน
Cyril N.

คำตอบนี้จะใช้ได้กับไซต์ที่ vhost ทั้งหมดมีอยู่ในไฟล์เดียว (คำตอบของ Eugene Fidelin นั้นสมบูรณ์กว่า) เมื่อใช้ไฟล์. conf แยกต่างหากสำหรับแต่ละไซต์ที่มี a2ensite ฉันไม่สามารถหาวิธีโหลดการกำหนดค่าเริ่มต้น (404) ได้ก่อน
Andrew Swift

Redirect 404 /ก็เพียงพอที่จะแสดงหน้า Apache "ไม่พบค่าเริ่มต้น" และยังทำงานภายใน virtualhost ที่เฉพาะเจาะจง (อาจมีบางกรณีที่คุณต้องการส่งคืน 404 สำหรับทั้งไซต์เพื่อทำให้หายไปจาก Google SERPs)
lucaferrario

1

นี่คือตัวอย่างของ 000-default.conf ที่จะส่งคืนข้อผิดพลาด 404 หากชื่อเซิร์ฟเวอร์ไม่ได้รับการกำหนดค่าสำหรับ Apache

<VirtualHost *:80>
  ServerName default
  Redirect 404 /
</VirtualHost>
<VirtualHost _default_:80>
  Redirect 404 /
</VirtualHost>

ฉันสามารถยืนยันได้ว่าส่วนที่สองใช้งานได้เมื่อ vhost ทั้งหมดได้รับการกำหนดค่าในไฟล์เดียว (ฉันใส่ไว้ก่อน)
Andrew Swift

1
มันอาจจะดีกว่าถ้าใช้ 503 (Service Unavailable) แทนที่จะเป็น 404 แต่ฉันสงสัยว่าในทางปฏิบัติมันสร้างความแตกต่างได้มากโดยทั่วไปเครื่องมือตรวจสอบจะแจ้งเตือนสำหรับรหัสที่ไม่ใช่ 200
กริช

มันทำงานได้อย่างสมบูรณ์แบบสำหรับ http แต่ไม่ใช่สำหรับ https เมื่อฉันทำกับพอร์ต 443 คุณมีความคิดเกี่ยวกับเรื่องนี้หรือไม่?
Sohail Ahmed
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.