ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して 404 エラー ページを書き換え、ページをよりユーザーフレンドリーにする_PHP チュートリアル

PHP を使用して 404 エラー ページを書き換え、ページをよりユーザーフレンドリーにする_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:13:07773ブラウズ

404 エラーについては、アクセスする URL が存在しない場合、このページが読み取られて表示されることを多くの人が知っています。以前は、404 に対処するための通常のアプローチは、単純に数行のテキストを記述することでした。これも少し読んでください。便宜を図りたい少数の人々は、遅延リダイレクトを行うためにメタ タグを使用することさえあります。これは、実際には、これに焦点を当てています。今日お話しすること

まず最初に、私の 404 が私に何ができるかを説明させてください: 1. どこからのユーザーが私の URL にアクセスしようとしてその結果が失敗したかを教えてくれます。
2.相手がこの URL にアクセスしたい理由を教えてくれて、ウェブサイトの最適化を手伝ってくれます
3.相手の IP アドレスを教えてくれます
4.相手の意図を教えてくれます
5.彼は私に言いたくないことを黙ってもらうことができます
6. 彼は私に言いたいことをメールで送ってくれる
7. 彼は私が 301 の永久リダイレクトをするのを手伝ってくれます
8.誰かが私の Web サイトまたはホストに侵入しようとしていると教えてください


非常に謎に聞こえます。それも非常にクールです。わかりました。それぞれを分析してみましょう : 1. PHP を使用してユーザーのソース URL をキャプチャできます。
2. ソース URL があるので、私のウェブサイト http:// のように、ユーザーの意図を直感的に推測できます。 www.jb51.net の場合、このユーザーのソース URL は http://www.jb51.net で、現在の URL は http://www.jb51.net/user.php?id=1 です。これは、この人が私のサイトを閲覧していることを意味します。Web サイト上の人のプロフィール ページをクリックすると、その人の情報が見つからず、エラーが発生します。これは、ID=1 の製品が存在しない可能性があり、削除されている可能性があることを意味します。この URL へのハイパーリンクがある場合は、それを削除する方法を見つける必要があります。
3. この関数は、PHP を使用するだけで簡単です。相手のIPアドレスを物理アドレスに変換する機能は非常に優れており、非常に強力です。なぜなら、私のWebサイトwww.7di.netは、私自身なので、セキュリティ面は自分で処理する必要があり、多くの場合、悪意のある人は他の人のサーバーに興味を持ち、さまざまな方法でサーバーに侵入しようとします。短期間に多数の 404 エラーが発生し、ソース URL が空の場合、アクセスしようとしている URL はすべて非常に機密性の高い URL です。現時点で必要なのは、ファイアウォール設定を開いて、その URL をブロックすることだけです。最近この方法を使っていくつかの IP アドレスをブロックしました。情報産業省の IP も私によってブロックされたことを忘れていましたが、なぜですか。本当ですか~~!
5. 正直に言うと、このプラグインは始まったばかりで、彼のおかげで毎日何百ものメールが届くのがとても気になりました。ユーザーによる通常の閲覧、コンテンツを収集するさまざまな検索エンジンによって引き起こされるものもあれば、侵入によって引き起こされるものもあります。とにかく、私は多くのトラブルを経験しました。条件を満たしたすべての拡張子、または条件を満たした IP を追加することで、メールを送信する必要がなくなります。もちろん、sendmail をインストールしたり、サードパーティを使用するメール クラスを開発したりするなど、他の方法を使用することもできます。問題がなければ、smtp 経由で送信できます (具体的な詳細は今日の説明の範囲外です)。
7. このページにアクセスできるということは、ユーザーがアクセスした URL が存在しないことを意味します。ユーザーを正しい URL にアクセスするように誘導する必要があるため、ユーザーを正しい URL にアクセスするように誘導するのであれば、メタ タグまたは JS 遅延を使用するだけで十分であると言えるでしょう。 301 リダイレクトの問題は、検索エンジンに不正行為だと思われたくないからです。
8. これについてはすでに説明しました。さらに、自分の Web サイト上のどの URL が他の Web サイトからバックリンクされているかを一般的に理解する必要があります (経験上、これは一夜にして達成できるものではありません)。投稿は終了しました。次の良いショーが上演されます。次のコードを 404 .php として保存し、Apache または nginx を使用して 404 エラー ページをここに指定します



コードをコピーします

コードは次のとおりです。以下に続きます:


#URL を設定します。末尾にアンダースコアがないことに注意してください/
$MyURL = (isSet($_SERVER['HTTP_HOST'])) Str_iReplace('http://','',StrToLower() rTrim( $_SERVER['HTTP_HOST'],'/'))) : 'www.7di.net';
#Set URL、末尾にアンダースコアがないことに注意してください/
$MyDomain = (isSet($_SERVER['HTTP_HOST' ])) ? 'http://'.Str_iReplace('http://','',StrToLower(rTrim($_SERVER['HTTP_HOST'],'/'))) : 'http://www.jb51 .net' ;
//主に 8 時間の時差を修正するために使用されます
//出力ヘッダー
Header('Content-type:text/html) ; charset=utf-8 ');
/**
メールを送信する
パラメータ:
受信者、メールのタイトル (改行なし)、メールの内容 (行は n で区切る必要があり、各行は 70 文字を超えることはできません)
説明:
PHP 組み込み関数を呼び出すMail はメールを送信します
戻り値:
ブール値を返します
使用法:
$IsSend=Fun::Mail2($email,$tit,$msg);*/
関数 Mail2($to,$tit,$msg) {
IF(Filter_var($to,FILTER_VALIDATE_EMAIL)==''){
throw new Exception('メールアドレスエラー!');
$tit='=?UTF-8?B?'.Base64_Encode($tit).'?=';
$msg = str_replace("n.", "n..", $msg); //Windows が行の先頭にピリオドを見つけた場合、そのピリオドは削除されます。この問題を回避するには、1 つのピリオドを 2 つのピリオドに置き換えます
Return Mail($to,$tit) ,$msg,'From:see7di@ gmail.com'."n".'Content-Type:text/html;charset=utf-8');
}
$msg='< ;/tr>
';
$msg .=(isSet($_SERVER['REMOTE_ADDR'])) ? "訪問者 IP は次のとおりです:
{$_SERVER['REMOTE_ADDR']}< br>" : '';
$msg.="訪問時間:
".date('Y-m-d H:i:s',time()).'< br>
';
$msg.=(isSet($_SERVER['REMOTE_HOST'])) "{$_SERVER['REMOTE_HOST']}

" : '
';
$msg.=(isSet( $_SERVER['HTTP_USER_AGENT'])) "訪問者の詳細:
{$_SERVER['HTTP_USER_AGENT']}
br>" : '' ;
$msg.=(isSet($_SERVER['REQUEST_URI'])) ? "アクセスしたいページは次のとおりです:
{$MyDomain }{$_SERVER['REQUEST_URI' ]}

" : '';
$msg.=(isSet($_SERVER['HTTP_REFERER']) および Trim($_SERVER['HTTP_REFERER']) !='') "送信元アドレスは:
{$_SERVER['HTTP_REFERER']}

"; .='
';
//これらがブロックされていないと、死ぬほどイライラします
$arr=Array( 'mp3','rm','swf', 'jpg','gif');
//メールを送信しない IP は、基本的に検索エンジンのスパイダーです
$arrIP=Array('66.249.77.217',' 66.249.74.67');
//拡張子
$needEx=Explode('.',StrToLower(Trim($_SERVER['REQUEST_URI']))); にアクセスします。 (!In_Array($needEx,$arr) And !In_Array(Trim($_SERVER['REMOTE_ADDR']),$arrIP)) {
Mail2('see7di@gmail.com','404 エラー ['.$MyURL .']!',$msg) ;
}
unSet($MyURL,$msg,$needEx,$arr);
Header('HTTP/1.1 301 が永久に移動されました'); }");
Die();


注: 上記のコードに実装されている機能があなたの要望を満たせないと思われる場合は、コードを書き直し、改善し、強化することをお勧めします。私は決して反対しません。でも、あなたの作品を私にシェアしてください、ありがとう~~~~!



http://www.bkjia.com/PHPjc/326532.html
www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/326532.html技術記事 404 エラーについては、アクセスする URL が存在しない場合、このページが読み取られて表示されることを多くの人が知っています。これまで、404 に対処するための通常のアプローチは、単純に数行のテキストを記述することでした。興味があります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。