400 BadRequestで機能するカスタムエラードキュメントを取得できません。 CentOSLAMPサーバーです。
ErrorDocument 400 /badrdoc.html
私は上記を使用してみました:
それらのどれも機能していません。 Apacheは、デフォルトの400 BadRequestページを提供しています。
誰かがこれに光を当てることができますか?
編集:言及するのを忘れました、私は変更後にApacheを再起動しました。
カスタム400エラードキュメントを機能させるのにかなりの問題がありました。これをApacheconfのトップレベルに追加しました。
ErrorDocument 404 /404.html
ErrorDocument 400 /400.html
そして、DocumentRoot
に2つのエラードキュメントを作成しました。まず、404を次のようにテストしました。
echo -en "GET /foo HTTP/1.0\n\n" | nc 127.0.0.1 80
これは私のカスタム404を返しました。
次に、400(先頭のスラッシュが欠落していることに注意してください):
echo -en "GET foo HTTP/1.0\n\n" | nc 127.0.0.1 80
応答はデフォルトのApache400でした。
HTTPをHTTPS仮想ホストに話しかけることで、カスタム400を取り戻すことができました。
echo -en "GET / HTTP/1.0\n\n" | nc 127.0.0.1 443
無効なリクエストを行った場合でも、同じカスタム400が返されます。
echo -en "GET foo HTTP/1.0\n\n" | nc 127.0.0.1 443
テストでは残念ながら、SSLを非SSL仮想ホストと通信しても400は発生しません。カスタムErrorDocuemnt 400
をポート80に送り返す方法がまだわかりません。
P.S.リクエストの形式が正しくない場合、正しいDocumentRoot
を判別することさえできない可能性があるため、ErrorDocument 400
が.htaccess
ファイル内で機能しないことをどこかで読んだことを覚えています。同じことがおそらく名前ベースの仮想ホストにも当てはまります。