デフォルトの仮想ホストがApacheで404ヘッダーを返すように設定するにはどうすればよいですか?


14

同様の質問が寄せられていることは承知していますが、答えは明確ではありませんので、ご容赦ください。

<VirtualHost>Apacheで数秒を設定した後_default、404メッセージを返すように_ ServerName を構成したいと思います。つまり、明示的に使用可能なドメインがHost httpヘッダーで指定されていない限り、404を返します(理想的には、現在存在しないディレクトリを指すよりも直接的なものです)。

どんな助けも大歓迎です。

回答:


27

試しましたか:

リダイレクト404 /
ErrorDocument 404「ページが見つかりません」

デフォルトのVirtualHostで?


ありがとう、それはやった!低レベルの専門知識は明らかなので、仲間の初心者には、デフォルトのサーバーが最初に表示されるように追加します。(これを理解するのにしばらく時間がかかりました!)
ezequiel-garzon

ErrorDocumentそのvhost内のファイルまたはURLを指す場合、404も返すため、内部サーバーエラーが生成されることに注意してください。
シリルN.

この回答は、すべての仮想ホストが単一のファイルに含まれているサイトで機能します(Eugene Fidelinの回答はより完全です)。a2ensiteを使用してサイトごとに個別の.confファイルを使用する場合、最初にデフォルト(404)構成をロードする方法がわかりませんでした。
アンドリュースウィフト

Redirect 404 /Apacheのデフォルトの「Not Found」ページを表示するには十分であり、特定の仮想ホスト内でも機能します(サイト全体で404を返してGoogle SERPから消えるようにする場合もあります)
lucaferrario

1

サーバー名がApache用に構成されていない場合に404​​エラーを返す000-default.confの例を次に示します

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

すべての仮想ホストが単一のファイルで構成されている場合、2番目の部分が機能することを確認できます(最初に配置します)。
アンドリュースウィフト

1
404の代わりに503(Service Unavailable)を使用する方が良いかもしれませんが、実際には大きな違いを生むとは思いません。監視ツールは通常、200以外のコードに対して警告を発します。
クリス

ポート443を使用する場合、httpに対しては完全に機能しますが、httpsに対しては完全に機能しません。
ソハイルアーメド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.