php - How to add an error page in a .htaccess file -
below .htaccess
file. have default_rewrite.php
file , content database have created.
rewriteengine on rewriterule ^/?([a-z0-9-_]*)$ default-rewrite.php?page=$1 [l]
when go known broken link e.g http://www.example.com/test/fgdhfuis
goes default rewrite page doesn't go page have stored in database. e.g
http://www.example.com/test/home
i have tried errordocument 404 /404.php
not me.
any advice appreciated.
below php edit:
<?php if (!function_exists("getsqlvaluestring")) { function getsqlvaluestring($thevalue, $thetype, $thedefinedvalue = "", $thenotdefinedvalue = "") { if (php_version < 6) { $thevalue = get_magic_quotes_gpc() ? stripslashes($thevalue) : $thevalue; } $thevalue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($thevalue) : mysql_escape_string($thevalue); switch ($thetype) { case "text": $thevalue = ($thevalue != "") ? "'" . $thevalue . "'" : "null"; break; case "long": case "int": $thevalue = ($thevalue != "") ? intval($thevalue) : "null"; break; case "double": $thevalue = ($thevalue != "") ? doubleval($thevalue) : "null"; break; case "date": $thevalue = ($thevalue != "") ? "'" . $thevalue . "'" : "null"; break; case "defined": $thevalue = ($thevalue != "") ? $thedefinedvalue : $thenotdefinedvalue; break; } return $thevalue; } } $colname_page = "home"; if (isset($_get['page'])) { $colname_page = $_get['page']; if($colname_page == "") $colname_page = "home"; } mysql_select_db($database_vrmonline, $vrmonline); $query_page = sprintf("select * page pagename = %s", getsqlvaluestring($colname_page, "text")); $page = mysql_query($query_page, $vrmonline) or die(mysql_error()); $row_page = mysql_fetch_assoc($page); $totalrows_page = mysql_num_rows($page); mysql_select_db($database_vrmonline, $vrmonline); $query_metadata = "select * metadata metadataid = 1"; $metadata = mysql_query($query_metadata, $vrmonline) or die(mysql_error()); $row_metadata = mysql_fetch_assoc($metadata); $totalrows_metadata = mysql_num_rows($metadata); ?>
i tried
$colname_page = "home"; if (isset($_get['page'])) { $colname_page = $_get['page']; if($colname_page == "") $colname_page = "home"; if ($totalrows_page == 0) { $colname_page = "404-error"; }
but makes every page go 404-error
having looked @ code, add:
if ($totalrows_page == 0) { // 404 page logic }
after first query, , set colname_page equal 404 page, make , put database. or can send 404 error in php using header('http/1.0 404 not found'); apache should use errodocument 404 page specified in .htaccess.
Comments
Post a Comment