PHP 404 오류를 다시 작성하는 방법: 먼저 URL을 설정하고 시간대를 설정한 다음 PHP 내장 기능인 Mail을 호출하여 이메일을 보내고 마지막으로 관련 코드 파일을 설정하세요. "404.php".
PHP를 사용하여 404 오류 페이지
404 오류를 다시 작성하세요. 과거에는 액세스할 URL이 없으면 페이지를 읽고 표시한다는 것을 많은 사람들이 알고 있습니다. 404를 처리하려면 단순히 몇 줄의 텍스트를 작성하면 일부 사려 깊은 사람들은 이를 약간 아름답게 만들 수 있으며 소수의 기회주의적인 사람들은 지연된 리디렉션을 수행하기 위해 메타 태그를 사용할 수도 있습니다.
우선, 내 404가 나에게 무엇을 할 수 있는지 설명하겠습니다.
1. 사용자가 언제 어디서 왔는지.
2. 상대방이 이 URL을 방문하려는 이유를 알려주고 웹사이트를 최적화하는 데 도움을 줄 수 있습니다.
3. 상대방의 IP 주소
4. 이 사람의 의도가 무엇인지 말해 줄 수 있습니다
5. 그가 나에게 말하고 싶지 않은 것을 닥치라고 말할 수 있습니다
6. 그는 할 수 있습니다
7. 그는 301 영구 리디렉션을 만드는 데 도움을 줄 수 있습니다.
8. 누군가가 내 웹사이트나 호스트를 침입하려고 한다고 말할 수 있습니다. 신비롭고 멋지네요. 그가 어떻게 했는지 토론해 보겠습니다. 하나씩 분석해 보겠습니다.
1. PHP를 사용하여 사용자의 소스 URL과 현재 URL을 캡처할 수 있으므로 첫 번째 요점을 매우 쉽게 수행할 수 있습니다.
2. 소스 URL이 있기 때문에 사용자의 의도를 직관적으로 추측할 수 있습니다. 제 웹사이트 http://lailinlin.com 처럼 사용자의 소스 URL이 http:// 라면요. lailinlin.com, 그를 캡쳐한 URL은 http://lailinlin.com/user.php?id=1 입니다. 이는 이 사람이 제 웹사이트를 열람할 때 누군가를 클릭했다는 뜻입니다. 찾을 수 없으며 오류가 발생합니다. 이는 ID=1인 제품이 존재하지 않고 삭제되었음을 의미합니다. 그런 다음 웹사이트에 이 URL에 대한 하이퍼링크가 아직 있는지 확인해야 합니다.
3. 이 기능은 비교적 간단합니다. 그러면 상대방의 IP를 캡처하기만 하면 됩니다. 그러면 다른 웹사이트의 물리적 주소 기능을 알 수 있습니다.
4. 이 기능은 매우 훌륭하고 강력합니다. 제 웹사이트인 http://lailinlin.com은 자체 구성 서버이기 때문에 보안 측면을 제가 직접 처리해야 합니다. 종종 다른 사람의 서버에 관심이 있는 일부 부도덕한 사람들은 프로그램을 사용하여 서버에 진입하기 위해 다양한 방법을 시도할 것입니다. 이 때 짧은 시간 내에 많은 수의 404 오류가 발생한다는 것을 알게 될 것입니다. 소스 URL이 비어 있습니다. 액세스하려는 URL은 모두 매우 민감한 URL입니다. 이때 해야 할 일은 방화벽 설정을 열고 이 IP를 완전히 차단하는 것뿐입니다. 최근에는 수십 개의 IP 주소를 차단했습니다. 이 방법을 사용하면 IP가 정말 작은데 정보산업부의 IP도 제가 차단했다는 사실을 깜빡했네요. 왜 인증하려고 하시나요? 정말~~!
5. 솔직히 말해서 이 플러그인은 처음에는 많이 귀찮았습니다. 그 덕분에 매일 수백 통의 이메일을 받았는데, 그 중 일부는 정상적으로 검색하는 사용자 때문이었습니다. 그 중 일부는 콘텐츠를 수집하는 다양한 검색 엔진으로 인해 발생했고 일부는 침입을 원했지만 어쨌든 문제를 해결하고 나중에 약간의 변경을 거쳐 조건에 맞는 확장을 모두 추가했습니다. 또는 조건을 충족하는 IP라면 이메일을 보낼 필요가 없으므로 더욱 상쾌합니다.
6. 내 접근 방식은 PHP 내부 메일 기능 전송을 구현하기 위해 PHP.INI를 수정하는 것입니다. 물론, sendmail을 설치하거나 메일을 개발하는 등의 다른 방법도 사용할 수 있습니다. 편안하게 보내주시면 됩니다. (구체적인 내용은 오늘 논의의 범위가 아닙니다.)
7. 이 페이지에 접속할 수 있다는 것은 사용자가 방문한 URL이 존재하지 않는다는 의미입니다. 사용자가 올바른 URL에 액세스하도록 안내해야 합니다. 따라서 사용자가 올바른 URL에 액세스하도록 안내하는 것이므로 301 리디렉션을 사용하는 것만으로도 충분하다고 말할 수 있습니다. 검색을 원하지 않습니다. 답변이 완료되었습니다.
8. 기본적으로 Xiaoyasan의 판단은 귀하의 웹 사이트에 대한 경험을 바탕으로 해야 합니다. 더 나아가, 귀하의 웹사이트에 있는 어떤 URL이 다른 웹사이트에 의해 역링크되어 있는지에 대한 전반적인 이해가 필요합니다(경험상 하루아침에 달성할 수는 없습니다).
말해야 할 것과 해야 할 일을 다 마쳤습니다. 다음으로 쇼가 시작됩니다. 아래 코드를 404.php로 저장한 다음 Apache 또는 nginx를 사용하여 여기에 404 오류 페이지를 지정하세요.
<?PHP #设置URL,注意没有后划线/ $MyURL = (isSet($_SERVER['HTTP_HOST'])) ? Str_iReplace('http://','',StrToLower(rTrim($_SERVER['HTTP_HOST'],'/'))) : 'www.7di.net'; #设置URL,注意没有后划线/ $MyDomain = (isSet($_SERVER['HTTP_HOST'])) ? 'http://'.Str_iReplace('http://','',StrToLower(rTrim($_SERVER['HTTP_HOST'],'/'))) : 'http://www.7di.net'; //設定時區.主要用來修正8小時時差 Date_Default_Timezone_Set('Etc/GMT-8'); //输出头部 Header('Content-type:text/html; charset=utf-8'); /** 发送電郵 参数: 收件人,郵件標題(不可有換行符),郵件內容(行與行之間必須用\n分隔,每行不可超過70個字符) 說明: 調用PHP內置函式Mail發送電郵 返回: 返回布爾值 用法: $IsSend=Fun::Mail2($email,$tit,$msg); /**/ Function 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如果在一行开头发现一个句号则会被删掉,要避免此问题将单个句号替换成两个句号 Return Mail($to,$tit,$msg,'From:see7di@gmail.com'."\n".'Content-Type:text/html;charset=utf-8'); } $msg='<table cellspacing="0" cellpadding="0" border="0"><tr><td style="padding:5px;background-color:#F57900;font-size:13px;border:2px solid #222;color:#222;">'; $msg.=(isSet($_SERVER['REMOTE_ADDR'])) ? "<b> 來訪者IP是:</b><br><a href='http://www.ip138.com/ips138.asp?ip={$_SERVER['REMOTE_ADDR']}&action=2' target='_blank'>{$_SERVER['REMOTE_ADDR']}</a><br>" : ''; $msg.="<b>來訪時間:</b><br>".date('Y-m-d H:i:s',time()).'<br><br>'; $msg.=(isSet($_SERVER['REMOTE_HOST'])) ? "<a href='http://www.ip138.com/ips138.asp?ip={$_SERVER['REMOTE_HOST']}&action=2' target='_blank'>{$_SERVER['REMOTE_HOST']}</a><br><br>" : '<br>'; $msg.=(isSet($_SERVER['HTTP_USER_AGENT'])) ? "<b>來訪者詳細資料:</b><br>{$_SERVER['HTTP_USER_AGENT']}<br><br>" : ''; $msg.=(isSet($_SERVER['REQUEST_URI'])) ? "<b>要訪問的頁面是:</b><br>{$MyDomain}{$_SERVER['REQUEST_URI']}<br><br>" : ''; $msg.=(isSet($_SERVER['HTTP_REFERER']) And Trim($_SERVER['HTTP_REFERER'])!='') ? "<b>來源地址是:</b><br>{$_SERVER['HTTP_REFERER']}<br><br>" : ''; $msg.='</td></tr></table>'; //哪些類型的URL不發Email,如果不屏蔽掉這些的話能煩死我 $arr=Array('mp3','rm','swf','jpg','gif'); //哪些IP不發Email,這些基本都是搜索引擎的蜘蛛 $arrIP=Array('66.249.77.217','66.249.74.67'); //要訪問的擴展名 $needEx=Explode('.',StrToLower(Trim($_SERVER['REQUEST_URI']))); $needEx=end($needEx); IF(!In_Array($needEx,$arr) And !In_Array(Trim($_SERVER['REMOTE_ADDR']),$arrIP)) { Mail2('see7di@gmail.com','來自【'.$MyURL.'】的404錯誤!',$msg); } unSet($MyURL,$msg,$needEx,$arr); Header('HTTP/1.1 301 Moved Permanently'); Header ("Location:{$MyDomain}"); Die();
자세한 내용은
PHP 중국어 웹사이트를 참조하세요.!
위 내용은 PHP 404 오류를 다시 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!