URL で間違ったクエリ文字列を使用しているユーザーをカスタム エラー ページにリダイレクトしたいのですが、.htaccess ディレクティブを通じて 404 ステータスも与えます。
ErrorDocument 404 http://www.domain.com/404.php
編集:これは404ではなく302を与えます!!! 「http://www.domain.com」はリダイレクトを引き起こします。ローカル パスだけで 404 が返されます。http://httpd.apache.org/docs/2.0/mod/core.html#errordocument も参照してください。
したがって、クエリ文字列が有効でないかどうかを判断し、有効な場合は次のコマンドを与えるスクリプトをリクエスト受信 index.php に作成しました。
header("HTTP/1.0 404 Not Found");
しかし、これは .htaccess ディレクティブ ErrorDocument を介してリダイレクトされず、訪問者に 404 ステータスを与えるだけです。
使用header("Location: 404.php")
すると 302 ステータスになり、使用header("Location: 404.php", true, 404)
するとステータスは 404 になりますが、カスタム 404.php ページには移動しません。
今私は使用します
header ("Location: ", true, 404);
echo "The URL you use doesn't lead to an existing page, etc.";
しかし、これは当初の計画ではありませんでした... URL で間違ったクエリ文字列を使用するユーザーを、.htaccess ディレクティブ ErrorDocument を介して 404 ステータスを与えながら、カスタム エラー ページにリダイレクトするにはどうすればよいでしょうか? または、これは不可能でしょうか?