public function HandlePage() { GetLib("class.redirects"); // We're here because we can't find the requested URL // It may be a URL that has been set up as a redirect, so lets check that ISC_REDIRECTS::checkRedirect($_SERVER['REQUEST_URI']); // Send the 404 status headers header("HTTP/1.1 404 Not Found"); // Simply show the 404 page $GLOBALS['ISC_CLASS_TEMPLATE']->SetPageTitle(GetConfig('StoreName')." - ".GetLang('NotFound')); $GLOBALS['ISC_CLASS_TEMPLATE']->SetTemplate("404"); $GLOBALS['ISC_CLASS_TEMPLATE']->ParseTemplate(); }
function RewriteIncomingRequest() { // Using path info if (isset($_SERVER['PATH_INFO']) && $_SERVER['PATH_INFO'] !== '' && basename($_SERVER['PATH_INFO']) != 'index.php') { $path = $_SERVER['PATH_INFO']; if (isset($_SERVER['SCRIPT_NAME'])) { $uriTest = str_ireplace($_SERVER['SCRIPT_NAME'], "", $path); if($uriTest != '') { $uri = $uriTest; } } else if (isset($_SERVER['SCRIPT_FILENAME'])) { $file = str_ireplace(ISC_BASE_PATH, "", $_SERVER['SCRIPT_FILENAME']); $uriTest = str_ireplace($file, "", $path); if($uriTest != '') { $uri = $uriTest; } } $GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/index.php/"; } // Using HTTP_X_REWRITE_URL for ISAPI_Rewrite on IIS based servers if(isset($_SERVER['HTTP_X_REWRITE_URL']) && !isset($uri)) { $uri = $_SERVER['HTTP_X_REWRITE_URL']; $GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/"; } // Using REQUEST_URI if (isset($_SERVER['REQUEST_URI']) && !isset($uri)) { $uri = $_SERVER['REQUEST_URI']; $GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/"; } // Using SCRIPT URL if (isset($_SERVER['SCRIPT_URL']) && !isset($uri)) { $uri = $_SERVER['SCRIPT_URL']; $GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/"; } // Using REDIRECT_URL if (isset($_SERVER['REDIRECT_URL']) && !isset($uri)) { $uri = $_SERVER['REDIRECT_URL']; $GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/"; } // Using REDIRECT URI if (isset($_SERVER['REDIRECT_URI']) && !isset($uri)) { $uri = $_SERVER['REDIRECT_URI']; $GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/"; } // Using query string? if (isset($_SERVER['QUERY_STRING']) && !isset($uri)) { $uri = $_SERVER['QUERY_STRING']; $GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/?"; $_SERVER['QUERY_STRING'] = preg_replace("#(.*?)\?#", "", $_SERVER['QUERY_STRING']); } if (isset($_SERVER['REDIRECT_QUERY_STRING'])) { $_SERVER['QUERY_STRING'] = $_SERVER['REDIRECT_QUERY_STRING']; } if(!isset($uri)) { $uri = ''; } // Check if the user needs to be redirected to www. or no www. GetLib('class.redirects'); $redirectURL = ISC_REDIRECTS::checkRedirectWWW($uri); if ($redirectURL) { ISC_REDIRECTS::redirect($redirectURL); } $originalUri = $uri; $appPath = preg_quote(trim($GLOBALS['AppPath'], "/"), "#"); $uri = trim($uri, "/"); $uri = trim(preg_replace("#".$appPath."#i", "", $uri,1), "/"); // Strip off anything after a ? in case we've got the query string too $uri = preg_replace("#\?(.*)#", "", $uri); $GLOBALS['PathInfo'] = explode("/", $uri); if(strtolower($GLOBALS['PathInfo'][0]) == "index.php") { $GLOBALS['PathInfo'][0] = ''; } if (!isset($GLOBALS['PathInfo'][0]) || !$GLOBALS['PathInfo'][0]) { $GLOBALS['PathInfo'][0] = "index"; } if(!isset($GLOBALS['RewriteRules'][$GLOBALS['PathInfo'][0]])) { $GLOBALS['PathInfo'][0] = "404"; } $handler = $GLOBALS['RewriteRules'][$GLOBALS['PathInfo'][0]]; $script = $handler['class']; $className = $handler['name']; $globalName = $handler['global']; if (isset($handler['checkdatabase'])) { // before redirecting, check for a stored 301 redirect GetLib("class.redirects"); ISC_REDIRECTS::checkRedirect($originalUri); } $GLOBALS[$globalName] = GetClass($className); $GLOBALS[$globalName]->HandlePage(); }