.htaccessファイルを次のように編集しました。
ErrorDocument 404 /index.php?page=page-not-found
ErrorDocument 400 /index.php?page=bad-request
これで、エラー404は正しくリダイレクトされますが、 http:// newshell /%22 %% 5E $ %% 5E&%C2%A3&のようなアドレスを入力すると、サーバーは400エラーをリダイレクトしません。ただし、デフォルトのApacheメッセージを表示します。私は何が間違っているのですか?
Apacheドキュメント からの引用:
ほとんどのエラーメッセージは上書きできますが、ErrorDocumentの設定に関係なく、内部メッセージが使用される特定の状況があります。特に、不正な形式のリクエストが検出された場合、通常のリクエスト処理はただちに停止され、内部エラーメッセージが返されます。これは、不正な要求によって引き起こされるセキュリティの問題を防ぐために必要です。
したがって、リダイレクトエラー400が必要な場合は、次のようにhttpd.conf
Apache構成ファイルのErrorDocument
ディレクティブのコメントを解除する必要があります。
# Some examples:
#ErrorDocument 500 http://foo.example.com/cgi-bin/tester
ErrorDocument 400 /cgi-bin/bad_request.pl
#ErrorDocument 401 /subscription_info.html
#ErrorDocument 403 "Sorry can't allow you access today"
apacheサーバーを再起動します。