Làm cách nào để định cấu hình máy chủ ảo mặc định trả về tiêu đề 404 trong apache?


14

Tôi biết rằng những câu hỏi tương tự đã được hỏi, nhưng câu trả lời có sẵn không rõ ràng lắm, vì vậy xin vui lòng chịu đựng với tôi.

Sau khi thiết lập một vài <VirtualHost>giây trong apache, tôi muốn định cấu hình _default_ ServerName để nó trả về thông báo 404. Tức là, trừ khi một số miền khả dụng rõ ràng được chỉ định trong tiêu đề Máy chủ http, hãy trả về 404. (Lý tưởng là một cái gì đó trực tiếp hơn là chỉ vào một thư mục hiện không tồn tại.)

Mọi sự trợ giúp sẽ rất được trân trọng.

Câu trả lời:


27

Bạn đã thử chưa:

Chuyển hướng 404 /
ErrorDocument 404 "Không tìm thấy trang"

trong Virtualhost mặc định?


Cảm ơn, điều đó đã làm nó! Vì nó rõ ràng trình độ chuyên môn thấp của tôi, tôi có thể thêm cho những người mới của mình rằng máy chủ mặc định sẽ xuất hiện đầu tiên. (Điều này khiến tôi mất một lúc để tìm ra!)
ezequiel-garzon

LƯU Ý rằng nếu các ErrorDocumentđiểm đến một tệp hoặc url bên trong vhost đó, nó cũng sẽ trả về 404, do đó tạo ra lỗi máy chủ nội bộ.
Cyril N.

Câu trả lời này sẽ hoạt động cho các trang web nơi tất cả các vhost được chứa trong một tệp duy nhất (câu trả lời của Eugene Fidelin hoàn chỉnh hơn). Khi sử dụng các tệp .conf riêng biệt cho mỗi trang web với a2ensite, trước tiên tôi không thể tìm ra cách tải cấu hình (404) mặc định.
Andrew Swift

Redirect 404 /là đủ để hiển thị trang "Không tìm thấy" mặc định của Apache và nó cũng hoạt động bên trong một máy chủ ảo cụ thể (có thể xảy ra trường hợp bạn muốn trả lại 404 cho toàn bộ trang để biến nó khỏi Google SERPs)
lucaferrario

1

Dưới đây là ví dụ về 000-default.conf sẽ trả về lỗi 404 nếu tên máy chủ không được định cấu hình cho Apache

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

Tôi có thể xác nhận rằng phần thứ hai hoạt động khi tất cả các vhost được cấu hình trong một tệp duy nhất (tôi đặt nó trước).
Andrew Swift

1
Có thể tốt hơn khi sử dụng 503 (Dịch vụ không khả dụng) thay vì 404, nhưng tôi nghi ngờ trong thực tế, nó có nhiều khác biệt, các công cụ giám sát thường sẽ cảnh báo cho bất kỳ mã không 200 nào.
Kris

Nó hoạt động hoàn hảo cho http nhưng không phải cho https khi tôi làm với cổng 443. Bạn có ý tưởng nào về điều đó không?
Sohail Ahmed
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.