0 members and 2,211 guests
No Members online

» Site Navigation
» Stats
Members: 35,442
Threads: 103,075
Posts: 826,688
Top Poster: cc.RadillacVIII (7,429)
|
-
Here is the code for a custom 404 page, it will handle errors for you...
Code:
<?
# Please dont rip made my xNirinium, loyal member of GFXVOID
# Set these variables to configure the script:
# Set $domain to your domain name (no www)
$domain = "";
# Set $docroot to the URL of the directory which contains your
# .htaccess file. Don't include trailing slash.
$docroot = "http://www.#.com";
# Font type
$fontface = "Verdana";
# Font size
$fontsize = "2";
# Background
$bgcolor = "#ffffff";
# Text color
$textcolor = "#000000";
# This script is capable of mailing the details of each 404 error
# to the webmaster. Use the $reportlevel variable to control when
# you receive these reports.
#
# 0 = don't use the email capabilities
# 1 = send email only if the error's referer contains your domain name
#**** (i.e. the 404 was generated by a broken link on your site)
# 2 = send email any time a 404 error is generated (useful for tracking
#**** broken links at other sites which link to you)
$reportlevel = 2;
# Set $emailaddress to the email address of whoever should be
# notified of 404 errors. Don't escape the @ symbol.
# You can leave this unassigned if you're not using email features.
$emailaddress = "you@example.com";
#
#Configuration ends here!
#
#Until I rewrite my scripts, this will suffice for bg-compatibility;
if(phpversion() >= "4.2.0"){
** extract($_POST);
** extract($_SERVER);
** extract($_ENV);
}
# The print_details function is what prints the 404 error to
# the visitor.
function print_details(){
** # Request access to the global variables we need
** global $fontface, $fontsize, $docroot, $REQUEST_URI, $reportlevel;
** global $bgcolor, $textcolor;
** # Print the 404 error in web format
** echo <<<EOT
<html><head><title>404 Not Found</title></head>
<body bgcolor="$bgcolor" text="$textcolor">
<b><h1>404 Not Found</h1></b>
<p><font face="$fontface" size="$fontsize">
We're sorry. The page you requested, $docroot$REQUEST_URI, doesn't exist
on this server.</font></p>
EOT;
** # If an email report is being generated, let the visitor know:
** if ($reportlevel != 0){
******echo "<p><font face=\"$fontface\" size=\"$fontsize\">";
******echo "The details of this error have automatically been mailed to the webmaster.";**
**** }
** return;
**}
# The send_email function sends the details of the 404 error to the
# webmaster.
function send_email(){
** # Request access to the global variables we need
** global $REQUEST_URI, $HTTP_REFERER, $emailaddress, $REMOTE_ADDR, $docroot;
** # Build the $errortime variable to contain the date/time of the error.
** $errortime = (date("d M Y h:m:s"));
** # Create the body of the email message
** $message .= "404 Error Report\n\nA 404 error was encountered by $REMOTE_ADDR";
** $message .= " on $errortime.\n\n";
** $message .= "The URI which generated the error is: \n$docroot$REQUEST_URI\n\n";
** $message .= "The referring page was:\n$HTTP_REFERER\n\n";
** # Send the mail message. This assumes mail() will work on your system!
** $headers = "From: $emailaddress\nDate: $errortime -0600\n";
** $subject = "404 Error: $docroot$REQUEST_URI";
** mail($emailaddress, $subject, $message, $headers);
**
** return;
**}
# Done with function declarations. Main function begins here.
header("404 Not Found");
# Send a 404 error to the user's browser
print_details();
# See whether or not we should send an email report. If so, do it.
if ($reportlevel != 0)
**if ($reportlevel == 1) {
****if (eregi($domain,$HTTP_REFERER))**
******send_email(); }
**else
**** send_email();
**
# Close up the HTML tags
echo "</body></html>";
?>
-
Well, your declarations are all correct.
-
Personally i would also use:
# Apache Error Handling
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /errors.php?act=FourZeroFour
ErrorDocument 404 /errors.php?act=FourZeroFour
and that goes into .HTACCESS
-
 Originally Posted by Karlos
Personally i would also use:
# Apache Error Handling
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /errors.php?act=FourZeroFour
ErrorDocument 404 /errors.php?act=FourZeroFour
and that goes into .HTACCESS
Me too.
Similar Threads
-
By Adam in forum Sigs & Manips
Replies: 1
Last Post: 09-23-2005, 12:53 AM
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|