104 lines
2.5 KiB
PHP
104 lines
2.5 KiB
PHP
<?php
|
|
/**
|
|
* @file webapp.php
|
|
* @date 2019-02-23
|
|
* @author Go Namhyeon <gnh1201@gmail.com>
|
|
* @brief Isolator(Compatibility mode) for legacy application
|
|
*/
|
|
|
|
loadHelper("isemail.lnk");
|
|
|
|
if(!defined("_DEF_RSF_")) set_error_exit("do not allow access");
|
|
|
|
// Protect GET method
|
|
foreach($_GET as $k=>$v) {
|
|
$_GET[$k] = get_requested_value($k, "_GET");
|
|
}
|
|
|
|
// Protect POST method
|
|
foreach($_POST as $k=>$v) {
|
|
$_POST[$k] = get_requested_value($k, "_POST");
|
|
}
|
|
|
|
// Protect REQUEST(ALL) method
|
|
foreach($_REQUEST as $k=>$v) {
|
|
$_REQUEST[$k] = get_requested_value($k, "_ALL");
|
|
}
|
|
|
|
// get self filename
|
|
$self_filename = "";
|
|
|
|
// get routes
|
|
$routes = read_route_all();
|
|
|
|
// set path and URL
|
|
$webapp_root = $_SERVER["DOCUMENT_ROOT"] . "/webapp";
|
|
$webapp_url = base_url() . "webapp";
|
|
|
|
// set DOCUMENT_ROOT forcely
|
|
$_SERVER["DOCUMENT_ROOT"] = $webapp_root;
|
|
|
|
// set file path
|
|
$appfile = $webapp_root . "/" . implode("/", $routes);
|
|
|
|
$appfile_path = $appfile . ".php";
|
|
|
|
// get end of routes
|
|
$is_static_file = false;
|
|
$is_redirect_to_index = false;
|
|
$end_route = end($routes);
|
|
$end_routes_attributes = explode(".", $end_route);
|
|
$end_fra = $end_routes_attributes[0];
|
|
$end_era = end($end_routes_attributes);
|
|
|
|
if($end_era == "php" || file_exists($appfile_path)) {
|
|
$appfile_path = str_replace(".php.php", ".php", $appfile_path);
|
|
if(file_exists($appfile_path)) {
|
|
include($appfile_path);
|
|
$self_filename = $end_fra . ".php";
|
|
} else {
|
|
set_error("Webapp 404 Not Found");
|
|
show_errors();
|
|
}
|
|
} else {
|
|
if(file_exists($appfile . "/index.php")) {
|
|
$appfile .= "/index.php";
|
|
if(empty($end_era)) {
|
|
include($appfile);
|
|
} else {
|
|
$is_redirect_to_index = true;
|
|
}
|
|
} elseif(file_exists($appfile . "/index.html")) {
|
|
$is_static_file = true;
|
|
$appfile .= "/index.html";
|
|
if(empty($end_era)) {
|
|
$end_era = "html";
|
|
} else {
|
|
$is_redirect_to_index = true;
|
|
}
|
|
} else {
|
|
$is_static_file = true;
|
|
}
|
|
}
|
|
|
|
if($is_redirect_to_index == true) {
|
|
redirect_uri(base_url() . implode("/", $routes) . "/");
|
|
exit;
|
|
}
|
|
|
|
if($is_static_file == true) {
|
|
if(file_exists($appfile)) {
|
|
set_header_content_type($end_era);
|
|
header("Cache-Control: max-age=86400");
|
|
|
|
$fp = fopen($appfile, "r") or die("404 Not Found");
|
|
while(!feof($fp)) {
|
|
echo fread($fp, 8192);
|
|
}
|
|
fclose($fp);
|
|
} else {
|
|
set_error("404 Not Found");
|
|
show_errors();
|
|
}
|
|
}
|