-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.php
36 lines (34 loc) · 1.43 KB
/
server.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
/**
* This file is part of the O2System PHP Framework package.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @author Steeve Andrian Salim
* @copyright Copyright (c) Steeve Andrian Salim
*/
// ------------------------------------------------------------------------
$uri = urldecode(
parse_url($_SERVER[ 'REQUEST_URI' ], PHP_URL_PATH)
);
// This file allows us to emulate Apache's "mod_rewrite" functionality from the
// built-in PHP web server. This provides a convenient way to test a O2System Framework
// application without having installed a "real" web server software here.
if ($uri !== '/' && is_file(__DIR__ . '/public' . $uri)) {
return false;
} elseif ($uri !== '/' && is_file($filePath = __DIR__ . str_replace('\\', '/', DIRECTORY_SEPARATOR))) {
if (strpos(dirname($filePath), 'database') !== false) {
return false;
} elseif (strpos(dirname($filePath), 'cache') !== false) {
return false;
} elseif (is_file($filePath)) {
header('Content-Disposition: filename=' . pathinfo($filePath, PATHINFO_BASENAME));
header('Content-Transfer-Encoding: binary');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
header('Content-Type: ' . filemtime($filePath));
echo readfile($filePath);
exit(0);
}
}
require_once __DIR__ . '/public/index.php';