1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?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;
|