<?php function d() { } function error($code = 403) { if($code == 404) { header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); header("Status: 404 Not Found"); $_SERVER['REDIRECT_STATUS'] = 404; return $GLOBALS['basedir'] . 'pages/errors/404.php'; } else { header($_SERVER["SERVER_PROTOCOL"]." 403 Forbidden"); header("Status: 403 Forbidden"); $_SERVER['REDIRECT_STATUS'] = 403; return $GLOBALS['basedir'] . 'pages/errors/403.php'; } } function getRequestPage($request = '') { if($request == '' or $request == '/') { return array(array(), array()); } $rArray = explode('/', $request); $args = array(); while(!file_exists($file = 'pages/' . implode('/', $rArray) . '.php') and $rArray != NULL) { array_unshift($args, array_pop($rArray)); } return array($rArray, $args); } include 'libs/utils.php'; $baseurl = trim(full_url($_SERVER), '/') . '/'; $basedir = dirname($_SERVER['SCRIPT_FILENAME']) . '/'; $dirty_req = preg_replace('/(\?.*)/', '', $_SERVER['REQUEST_URI']); $dn = dirname($_SERVER['SCRIPT_NAME']); $dirty_req = substr($dirty_req, strlen($dn)); $dirty_req = trim($dirty_req, '/'); if(strlen($dirty_req) > 0) { $baseurl = substr(trim(preg_replace('/(\?.*)/', '', $baseurl), '/'), 0, -strlen($dirty_req)); } else { $baseurl = preg_replace('/(\?.*)/', '', $baseurl); } if(strlen($dirty_req) > 0) { if(substr($_SERVER['REQUEST_URI'], -1) === '/') { $redirect_url = trim(full_url($_SERVER), '/'); header("HTTP/1.1 301 Moved Permanently"); header("Location: $redirect_url"); die; } } $request = $dirty_req; ob_start(); $r = getRequestPage($request); $GLOBALS['args'] = $r[1]; if(empty($r[0])) { if(empty($r[1])) { include $basedir . 'pages/home.php'; } else { include error(404); } } else { include $basedir.'pages/'.implode('/', $r[0]).'.php'; } $html = ob_get_clean(); echo $html;