search
HomeBackend DevelopmentPHP TutorialUse PHP to rewrite the 404 error page to make your page more user-friendly_PHP Tutorial

404 error, many people know that if the URL to be accessed does not exist, the page will be read and displayed. In the past, our usual approach to dealing with 404 was to simply write a few lines of text, and interested people may also do a little bit of it. To beautify, a small number of guys who want to be opportunistic even use meta tags to do delayed redirection. That's it. In fact, 404 can also help us do a lot of things. This is the focus of what we are going to discuss today.

First of all, let me explain what my 404 can do for me:
1. It can tell me when a user from where to access my URL failed.
2. He can tell me why the other party wants to visit this URL and help me optimize the website
3. He can tell me the other party’s IP address
4. He can tell me what the person’s intentions are
5 .I can ask him to shut up what he doesn’t want to tell me
6. He can email me what he wants to tell me
7. He can help me make a 301 permanent redirect.
8. He can tell me that someone is trying to hack into my website or host

It sounds very mysterious and cool, okay, let’s discuss how he does it next . Analyze one by one :
1. We can use PHP to capture the user's source URL and current URL, so we can do the first point very easily.
2. Because of the source URL, So you can intuitively guess the user's intention. Let me give you an example, just like my website http://www.jb51.net, if the source URL of a user is http://www.jb51. net, and the current URL captured is http://www.jb51.net/user.php?id=1. This means that when this person browses my website, the result will be when he clicks on someone's profile page. An error occurred because the information of this person cannot be found. It means: the product with ID=1 may not exist and has been deleted. Then you need to check whether there is still a hyperlink to this URL on the website. If so, Find a way to delete it!
3. This function is relatively simple. You only need to use PHP to capture the other party’s IP. Then you can use the IP to physical address function of other websites to know where the person is from. Where is it.
4. This function is very good and very powerful. Because my website www.7di.net is a server configured by myself, I have to handle the security aspects by myself, and there are often some unscrupulous guys who do harm to others. are interested in the server, they will use programs to try various methods to enter the server, and at this time you will find that you receive a large number of 404 errors in a short period of time, and the source URL is empty. The URLs they want to access are all It is a very sensitive URL. All you need to do at this time is to open your firewall settings and block the IP cleanly. I have blocked dozens of IPs using this method recently. It is really a small amount of effort that makes a big difference! Forgot Having said that, the IP of the Ministry of Information Industry has also been blocked by me. My server is in Taiwan, why are you trying to verify it? Really~~!
5. To be honest, this plug-in bothered me very much at the beginning, because Thanks to him, I receive hundreds of emails every day, some of which are caused by users browsing normally, some of which are caused by various search engines collecting content, and some of which are caused by bad guys who want to invade. In short, I don’t tire of it. Later, I made a slight change and added the verification if the extension meets the conditions or the IP meets the conditions. As long as these meet the conditions, there is no need to send an email, which is much more refreshing.
6. All of this cannot be separated from PHP instant sending For the Email function, my approach is to modify PHP.INI to implement PHP internal mail function sending. Of course, you can also use other methods, such as installing sendmail or developing a mail class to send using third-party smtp. As long as As long as you feel comfortable (the specific details are not the scope of today's discussion).
7. Since this page can be accessed, it means that the URL visited by the user does not exist, so we need to guide the user to access the correct URL. So since you are guiding users to access the correct URL, you may say that just using a meta tag or a JS delay is enough. Why bother with a 301 redirect? Because I don’t want search engines to think I am cheating! Answered.
8. I have already explained this point above. Basically, the judgment of the little one should be based on your experience and familiarity with your own website. What’s more, you need to have a general understanding of your website. Which URLs have been backlinked by other websites (experience, it can’t be achieved overnight).

That’s all that needs to be said and what needs to be posted. The fun is about to start next. Save the code below. 404.php, and then use apache or nginx to point your 404 error page here.

Copy the code The code is as follows:

#Set URL, note there is no trailing underscore/
$MyURL = (isSet($_SERVER['HTTP_HOST'])) ? Str_iReplace('http://' ,'',StrToLower(rTrim($_SERVER['HTTP_HOST'],'/'))) : 'www.7di.net';
#Set the URL, note that there is no trailing underscore/
$MyDomain = (isSet($_SERVER['HTTP_HOST'])) ? 'http://'.Str_iReplace('http://','',StrToLower(rTrim($_SERVER['HTTP_HOST'],'/'))) : 'http://www.jb51.net';
//Set the time zone. Mainly used to correct the 8-hour time difference
Date_Default_Timezone_Set('Etc/GMT-8');
//Output header
Header('Content-type:text/html; charset=utf-8');
/**
Send email
Parameters:
Recipient, email title (no line breaks), email content (lines must be separated by n, each line cannot exceed 70 characters)
Description:
Call the PHP built-in function Mail to send an email
Return:
Return a Boolean value
Usage:
$IsSend=Fun::Mail2($email,$tit,$msg);
/**/
Function Mail2($to,$tit,$msg) {
IF(Filter_var($to,FILTER_VALIDATE_EMAIL)==''){
throw new Exception('Wrong email address!');
}
$tit='=?UTF-8? B?'.Base64_Encode($tit).'?=';
$msg = str_replace("n.","n..",$msg); //If Windows finds a period at the beginning of a line, it will be deleted. To avoid this problem, replace a single period with two periods
Return Mail($to,$tit,$msg,'From:see7di@gmail.com'."n".'Content-Type: text/html;charset=utf-8');
}
$msg='
';
$msg.=(isSet($_SERVER[ 'REMOTE_ADDR'])) ? "Visitor IP is:
{$_SERVER['REMOTE_ADDR']}
" : '';
$msg.="< ;b>Visit time:
".date('Y-m-d H:i:s',time()).'

';
$msg. =(isSet($_SERVER['REMOTE_HOST'])) ? "{$_SERVER['REMOTE_HOST']}

" : '
';
$msg.=(isSet($_SERVER ['HTTP_USER_AGENT'])) ? "Visitor details:
{$_SERVER['HTTP_USER_AGENT']}

" : '';
$msg.=(isSet($_SERVER['REQUEST_URI'])) ? "The page you want to visit is:
{$MyDomain}{$_SERVER['REQUEST_URI' ]}

" : '';
$msg.=(isSet($_SERVER['HTTP_REFERER']) And Trim($_SERVER['HTTP_REFERER'])!='') ? "The source address is:
{$_SERVER['HTTP_REFERER']}

" : '';
$msg.='
';
//Which types of URLs do not send emails? If these are not blocked, it will annoy me to death
$arr=Array('mp3', 'rm','swf','jpg','gif');
//Which IPs do not send emails, these are basically search engine spiders
$arrIP=Array('66.249.77.217', '66.249.74.67');
//The extension to be accessed
$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','404 error from ['.$MyURL.']!',$msg);
}
unSet($MyURL,$msg,$needEx,$arr);
Header( 'HTTP/1.1 301 Moved Permanently');
Header ("Location:{$MyDomain}");
Die();

Note: If you feel that the above code If the implemented function still cannot satisfy your desires, then I encourage you to rewrite it, improve it, and strengthen it. I will never object, but please share your work with me, thank you~~~~!

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/326532.htmlTechArticle404 error. Many people know that if the URL to be accessed does not exist, this page will be read and displayed. In the past, our usual approach to handling 404 was to simply write a few lines, and those who are interested...
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
PHP and Python: Different Paradigms ExplainedPHP and Python: Different Paradigms ExplainedApr 18, 2025 am 12:26 AM

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP and Python: A Deep Dive into Their HistoryPHP and Python: A Deep Dive into Their HistoryApr 18, 2025 am 12:25 AM

PHP originated in 1994 and was developed by RasmusLerdorf. It was originally used to track website visitors and gradually evolved into a server-side scripting language and was widely used in web development. Python was developed by Guidovan Rossum in the late 1980s and was first released in 1991. It emphasizes code readability and simplicity, and is suitable for scientific computing, data analysis and other fields.

Choosing Between PHP and Python: A GuideChoosing Between PHP and Python: A GuideApr 18, 2025 am 12:24 AM

PHP is suitable for web development and rapid prototyping, and Python is suitable for data science and machine learning. 1.PHP is used for dynamic web development, with simple syntax and suitable for rapid development. 2. Python has concise syntax, is suitable for multiple fields, and has a strong library ecosystem.

PHP and Frameworks: Modernizing the LanguagePHP and Frameworks: Modernizing the LanguageApr 18, 2025 am 12:14 AM

PHP remains important in the modernization process because it supports a large number of websites and applications and adapts to development needs through frameworks. 1.PHP7 improves performance and introduces new features. 2. Modern frameworks such as Laravel, Symfony and CodeIgniter simplify development and improve code quality. 3. Performance optimization and best practices further improve application efficiency.

PHP's Impact: Web Development and BeyondPHP's Impact: Web Development and BeyondApr 18, 2025 am 12:10 AM

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

How does PHP type hinting work, including scalar types, return types, union types, and nullable types?How does PHP type hinting work, including scalar types, return types, union types, and nullable types?Apr 17, 2025 am 12:25 AM

PHP type prompts to improve code quality and readability. 1) Scalar type tips: Since PHP7.0, basic data types are allowed to be specified in function parameters, such as int, float, etc. 2) Return type prompt: Ensure the consistency of the function return value type. 3) Union type prompt: Since PHP8.0, multiple types are allowed to be specified in function parameters or return values. 4) Nullable type prompt: Allows to include null values ​​and handle functions that may return null values.

How does PHP handle object cloning (clone keyword) and the __clone magic method?How does PHP handle object cloning (clone keyword) and the __clone magic method?Apr 17, 2025 am 12:24 AM

In PHP, use the clone keyword to create a copy of the object and customize the cloning behavior through the \_\_clone magic method. 1. Use the clone keyword to make a shallow copy, cloning the object's properties but not the object's properties. 2. The \_\_clone method can deeply copy nested objects to avoid shallow copying problems. 3. Pay attention to avoid circular references and performance problems in cloning, and optimize cloning operations to improve efficiency.

PHP vs. Python: Use Cases and ApplicationsPHP vs. Python: Use Cases and ApplicationsApr 17, 2025 am 12:23 AM

PHP is suitable for web development and content management systems, and Python is suitable for data science, machine learning and automation scripts. 1.PHP performs well in building fast and scalable websites and applications and is commonly used in CMS such as WordPress. 2. Python has performed outstandingly in the fields of data science and machine learning, with rich libraries such as NumPy and TensorFlow.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Have Crossplay?
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools