ユーザーが存在するページに到達したが、ユーザーに見せたくない場合に404エラーを表示したい。
次のようにリダイレクト(アドレスバーにエラーページのリンクがアドレスバーに表示される)を実行したくありません。
if ($this_page_should_not_be_seen)
header("Location: err.php?e=404");
代わりに、ブラウザのアドレスのURLを変更しない限り、ページは実際には存在しないように見えるはずです。
現在のページにエラーページを含め、404エラーステータスコードを送信します。
<?php
if ($nobody_should_ever_be_here) {
header('HTTP/1.1 404 Not Found'); //This may be put inside err.php instead
$_GET['e'] = 404; //Set the variable for the error code (you cannot have a
// querystring in an include directive).
include 'err.php';
exit; //Do not do any more work in this script.
}
?>
ページが表示されない場合は、これを使用する必要があることに注意してください。許可されていないアクセスのより適切なステータスコード(ログインしているユーザーにページが表示される場合)は403(許可されていません)です。
プログラムで404(または実際には他のHTTP応答コード)を実現できます
header('HTTP/1.0 404 Not Found');
die;
私の経験では、URLを変更せずに404エラードキュメントを表示する最良の方法は、apaches .htaccess
ファイルでエラードキュメントを定義することです。
RewriteEngine on
RewriteBase /
# Defines 404 error pages content:
ErrorDocument 404 /my_root/errors/404.html
# for all invalid links (non existing files):
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* - [L,R=404]
# for some valid links (existing files to be un-accessible):
RewriteCond %{THE_REQUEST} ^.*some_file.php.*$ [NC]
RewriteRule .* - [L,R=404]
あなたが書いたものは私たちが理解するのを難しくします。
着信ユーザーが到達したくないページに到達した場合、着信ユーザーを404エラーページにリダイレクトしたいと思います。
それで、人は存在するページに到達しますか?
たとえば、保護されたページに到達した場合、その人は見ることができません。ヘッダーを使用するのが最善の方法です。オプションはmeta-refreshまたはjavascriptをエコーすることですが、ヘッダーははるかにクリーンです。 Webでかなり一般的なYou do not have permission to do that!
のようなものを表示できます。リダイレクトしたくない場合は、ヘッダーを介して404「偽のメッセージ」を表示できます。
誰かが404ページ、存在しないファイルに到達することについて話している場合、唯一のオプションは.htaccessを使用することです
次のように404ページに移動できますか
header( 'Location: http://www.website.com/errors/404.php ');