Heim  >  Artikel  >  Backend-Entwicklung  >  So schreiben Sie den PHP 404-Fehler um

So schreiben Sie den PHP 404-Fehler um

藏色散人
藏色散人Original
2020-07-13 09:11:232322Durchsuche

So schreiben Sie den PHP-404-Fehler um: Legen Sie zuerst die URL fest und legen Sie dann die in PHP integrierte Funktion Mail fest, um die E-Mail zu senden Codedatei in „404.php“ umwandeln. Das war's.

So schreiben Sie den PHP 404-Fehler um

Verwenden Sie PHP, um die 404-Fehlerseite neu zu schreiben

404-Fehler, das wissen viele Leute, wenn Sie besuchen möchten Die URL dieser Seite wird gelesen und angezeigt, wenn sie nicht existiert. In der Vergangenheit bestand unser üblicher Ansatz im Umgang mit 404 darin, einfach ein paar Textzeilen zu schreiben, und einige interessierte Leute könnten es sogar ein wenig verschönern, und zwar eine kleine Anzahl Die meisten Leute, die es nutzen möchten, können sogar Meta-Tags verwenden, um eine verzögerte Weiterleitung durchzuführen. Tatsächlich kann uns 404 auch bei vielen Dingen helfen, die wir heute besprechen werden 🎜>

Lassen Sie mich zunächst erklären, was 404 genau für mich tun kann:

1 Der Benutzer konnte nicht auf meine URL zugreifen.

2 Er kann mir sagen, warum die andere Partei diese URL besuchen möchte, und mir helfen, die Website zu optimieren

3. Er kann mir die IP-Adresse der anderen Partei mitteilen

4 Er kann mir sagen, welche Absichten diese Person hat

5. Ich kann ihn über Dinge zum Schweigen bringen, die er mir nicht sagen möchte

6 Er kann mir per E-Mail schicken, was er mir sagen möchte

7. Er kann mir helfen, eine 301-Weiterleitung vorzunehmen

8 Er kann mir sagen, dass jemand versucht, in meine Website oder meinen Host einzudringen

Es klingt sehr mysteriös und cool, okay, lass uns als nächstes besprechen, wie er es gemacht hat. Analyse nacheinander:

1 Wir können PHP dazu verwenden Erfassen Sie die Quell-URL und die aktuelle URL, sodass wir dies ganz einfach tun können.

2 Aufgrund der Quell-URL können Sie die Absicht des Benutzers intuitiv erraten Ich gebe Ihnen ein Beispiel, genau wie meine Website http://lailinlin.com, wenn die Quell-URL eines Benutzers http://lailinlin.com ist und die aktuell erfasste URL http://lailinlin.com/user ist. php?id=1, dann bedeutet dies, dass diese Person, als sie meine Website durchsuchte und auf die Seite mit den persönlichen Informationen einer Person klickte, die Informationen der Person nicht finden konnte und einen Fehler machte. Das bedeutet: Das Produkt mit der ID=1 existiert möglicherweise nicht wurde gelöscht, dann prüfen Sie einfach, ob es einen Hyperlink zu dieser URL auf der Website gibt.

3 Ganz einfach, Sie müssen nur PHP verwenden, um die IP-Adresse der anderen Partei zu erfassen, indem Sie die IP-Adresse anderer Websites verwenden 4. Diese Funktion ist sehr nützlich. Okay, sehr leistungsfähig. Da meine Website http://lailinlin.com ein selbstkonfigurierter Server ist, muss ich mich selbst um die Sicherheitsaspekte kümmern, und es gibt oft einige skrupellose Leute, die daran interessiert sind Die Server anderer Leute versuchen verschiedene Methoden, um auf den Server zuzugreifen. Zu diesem Zeitpunkt werden Sie feststellen, dass Sie in kurzer Zeit eine große Anzahl von 404-Fehlern erhalten und die URLs leer sind Zu diesem Zeitpunkt müssen Sie lediglich Ihre Firewall-Einstellungen öffnen und dann diese IP sauber blockieren. Ich habe diese Methode kürzlich verwendet, um Dutzende von IPs zu blockieren, und das ist wirklich der Fall Ein kleiner Aufwand, der einen großen Unterschied macht! Ich habe vergessen zu erwähnen, dass die IP des Ministeriums für Informationsindustrie auch von mir blockiert wurde. Warum versuchen Sie es wirklich? Ich erhalte jeden Tag Hunderte von E-Mails, von denen einige durch normales Surfen der Benutzer verursacht werden, andere durch das Sammeln von Inhalten durch verschiedene Suchmaschinen und wieder andere durch Bösewichte, die eindringen wollen. Ich werde nicht müde und habe später eine kleine Änderung vorgenommen und alle Erweiterungen hinzugefügt, die die Bedingungen erfüllen, oder IPs, die die Bedingungen für die Verifizierung erfüllen. Solange diese die Bedingungen erfüllen, besteht keine Notwendigkeit, E-Mails zu senden, was es viel macht erfrischender.

6 All dies ist untrennbar mit der Fähigkeit von PHP verbunden, E-Mails sofort zu versenden. Sie können auch andere Methoden verwenden, z. B. die Installation von Sendmail oder die Entwicklung einer Mail-Klasse. Sie können es mit Hilfe eines Drittanbieter-SMTP versenden (die spezifischen Details sind nicht Gegenstand der heutigen Diskussion).

7. Da auf diese Seite zugegriffen werden kann, bedeutet dies, dass die vom Benutzer besuchte URL nicht vorhanden ist. Daher müssen wir Benutzer anleiten, auf die richtige URL zuzugreifen Wir leiten Benutzer an, auf die richtige URL zuzugreifen. Man könnte sagen, dass die Verwendung eines Meta-Tags oder einer JS-Verzögerung ausreicht. Warum sollte ich mich nicht mit einer 301-Weiterleitung herumschlagen? abgeschlossen.

8 Das Urteil von Xiaoyasan muss grundsätzlich auf Ihrer Erfahrung und Vertrautheit mit Ihrer eigenen Website basieren um ein allgemeines Verständnis darüber zu haben, welche URLs auf Ihrer Website von anderen Websites verlinkt werden (erfahrungsgemäß kann dies nicht über Nacht erreicht werden).

Was gesagt werden sollte und was gesagt werden sollte, ist vorbei. Als nächstes kommt der Spaß. Speichern Sie den Code unten als 404.php und verwenden Sie dann Apache oder Nginx, um Ihren 404-Fehler zu speichern.

<?PHP
  
  
#设置URL,注意没有后划线/
$MyURL = (isSet($_SERVER[&#39;HTTP_HOST&#39;])) ? Str_iReplace(&#39;http://&#39;,&#39;&#39;,StrToLower(rTrim($_SERVER[&#39;HTTP_HOST&#39;],&#39;/&#39;))) : &#39;www.7di.net&#39;;
  
#设置URL,注意没有后划线/
$MyDomain = (isSet($_SERVER[&#39;HTTP_HOST&#39;])) ? &#39;http://&#39;.Str_iReplace(&#39;http://&#39;,&#39;&#39;,StrToLower(rTrim($_SERVER[&#39;HTTP_HOST&#39;],&#39;/&#39;))) : &#39;http://www.7di.net&#39;;
  
//設定時區.主要用來修正8小時時差
Date_Default_Timezone_Set(&#39;Etc/GMT-8&#39;);
  
//输出头部
Header(&#39;Content-type:text/html; charset=utf-8&#39;);
  
/**
发送電郵
参数:
收件人,郵件標題(不可有換行符),郵件內容(行與行之間必須用\n分隔,每行不可超過70個字符)
說明:
調用PHP內置函式Mail發送電郵
返回:
返回布爾值
用法:
$IsSend=Fun::Mail2($email,$tit,$msg);
/**/
Function Mail2($to,$tit,$msg) {
IF(Filter_var($to,FILTER_VALIDATE_EMAIL)==&#39;&#39;){
throw new Exception(&#39;電郵地址錯誤!&#39;);
}
  
$tit=&#39;=?UTF-8?B?&#39;.Base64_Encode($tit).&#39;?=&#39;;
$msg = str_replace("\n.","\n..",$msg); //Windows如果在一行开头发现一个句号则会被删掉,要避免此问题将单个句号替换成两个句号
  
Return Mail($to,$tit,$msg,&#39;From:see7di@gmail.com&#39;."\n".&#39;Content-Type:text/html;charset=utf-8&#39;);
}
  
$msg=&#39;<table cellspacing="0" cellpadding="0" border="0"><tr><td style="padding:5px;background-color:#F57900;font-size:13px;border:2px solid #222;color:#222;">&#39;;
$msg.=(isSet($_SERVER[&#39;REMOTE_ADDR&#39;])) ? "<b> 來訪者IP是:</b><br><a href=&#39;http://www.ip138.com/ips138.asp?ip={$_SERVER[&#39;REMOTE_ADDR&#39;]}&action=2&#39; target=&#39;_blank&#39;>{$_SERVER[&#39;REMOTE_ADDR&#39;]}</a><br>" : &#39;&#39;;
$msg.="<b>來訪時間:</b><br>".date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br><br>&#39;;
$msg.=(isSet($_SERVER[&#39;REMOTE_HOST&#39;])) ? "<a href=&#39;http://www.ip138.com/ips138.asp?ip={$_SERVER[&#39;REMOTE_HOST&#39;]}&action=2&#39; target=&#39;_blank&#39;>{$_SERVER[&#39;REMOTE_HOST&#39;]}</a><br><br>" : &#39;<br>&#39;;
$msg.=(isSet($_SERVER[&#39;HTTP_USER_AGENT&#39;])) ? "<b>來訪者詳細資料:</b><br>{$_SERVER[&#39;HTTP_USER_AGENT&#39;]}<br><br>" : &#39;&#39;;
$msg.=(isSet($_SERVER[&#39;REQUEST_URI&#39;])) ? "<b>要訪問的頁面是:</b><br>{$MyDomain}{$_SERVER[&#39;REQUEST_URI&#39;]}<br><br>" : &#39;&#39;;
$msg.=(isSet($_SERVER[&#39;HTTP_REFERER&#39;]) And Trim($_SERVER[&#39;HTTP_REFERER&#39;])!=&#39;&#39;) ? "<b>來源地址是:</b><br>{$_SERVER[&#39;HTTP_REFERER&#39;]}<br><br>" : &#39;&#39;;
$msg.=&#39;</td></tr></table>&#39;;
  
//哪些類型的URL不發Email,如果不屏蔽掉這些的話能煩死我
$arr=Array(&#39;mp3&#39;,&#39;rm&#39;,&#39;swf&#39;,&#39;jpg&#39;,&#39;gif&#39;);
  
//哪些IP不發Email,這些基本都是搜索引擎的蜘蛛
$arrIP=Array(&#39;66.249.77.217&#39;,&#39;66.249.74.67&#39;);
  
//要訪問的擴展名
$needEx=Explode(&#39;.&#39;,StrToLower(Trim($_SERVER[&#39;REQUEST_URI&#39;])));
$needEx=end($needEx);
  
IF(!In_Array($needEx,$arr) And !In_Array(Trim($_SERVER[&#39;REMOTE_ADDR&#39;]),$arrIP)) {
Mail2(&#39;see7di@gmail.com&#39;,&#39;來自【&#39;.$MyURL.&#39;】的404錯誤!&#39;,$msg);
}
  
unSet($MyURL,$msg,$needEx,$arr);
Header(&#39;HTTP/1.1 301 Moved Permanently&#39;);
Header ("Location:{$MyDomain}");
Die();

Weitere Informationen zu diesem Thema finden Sie unter

PHP chinesische Website

!

Das obige ist der detaillierte Inhalt vonSo schreiben Sie den PHP 404-Fehler um. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Warum ist PHP kalt?Nächster Artikel:Warum ist PHP kalt?