e3af4c946d
The webservers now need to send every request to router.php, which will call appropriate files. Forms will be treated before being displayed.
49 lines
1.6 KiB
PHP
49 lines
1.6 KiB
PHP
<?php
|
|
|
|
define("CONF", parse_ini_file(__DIR__ . "/config.ini", true, INI_SCANNER_TYPED));
|
|
|
|
foreach (array_diff(scandir(CONF['common']['root_path'] . "/fn"), array('..', '.')) as $file)
|
|
require CONF['common']['root_path'] . '/fn/' . $file;
|
|
|
|
define("DB_PATH", CONF['common']['root_path'] . "/db/niver.db");
|
|
|
|
define("PLACEHOLDER_DOMAIN", "example"); // From RFC2606: Reserved Top Level DNS Names > 2. TLDs for Testing, & Documentation Examples
|
|
define("PLACEHOLDER_IPV6", "2001:db8::3"); // From RFC3849: IPv6 Address Prefix Reserved for Documentation
|
|
define("PLACEHOLDER_IPV4", "203.0.113.42"); // From RFC5737: IPv4 Address Blocks Reserved for Documentation
|
|
|
|
if ($_SERVER['REQUEST_URI'] === '/sftpgo-auth.php')
|
|
return;
|
|
|
|
$pageAddress = substr($_SERVER['REQUEST_URI'], strlen(CONF['common']['prefix']) + 1);
|
|
if (strpos($pageAddress, "?") !== false) {
|
|
parse_str(substr($pageAddress, strpos($pageAddress, "?") + 1), $_GET);
|
|
$pageAddress = substr($pageAddress, 0, strpos($pageAddress, "?"));
|
|
}
|
|
if (substr($pageAddress, -1) === '/' OR $pageAddress === '')
|
|
$pageAddress .= 'index';
|
|
define("PAGE_ADDRESS", $pageAddress);
|
|
define("SERVICE", dirname(PAGE_ADDRESS));
|
|
define("PAGE", basename(PAGE_ADDRESS, '.php'));
|
|
|
|
require "pages.php";
|
|
|
|
if (SERVICE !== '.') {
|
|
if (!isset(TITLES[SERVICE]['index'])) {
|
|
http_response_code(404);
|
|
exit('Page not found.');
|
|
}
|
|
$page['service'] = TITLES[SERVICE]['index'];
|
|
if (PAGE !== 'index') {
|
|
if (!isset(TITLES[SERVICE][PAGE])) {
|
|
http_response_code(404);
|
|
exit('Page not found.');
|
|
}
|
|
$page['title'] = TITLES[SERVICE][PAGE];
|
|
}
|
|
}
|
|
|
|
require "html.php";
|
|
|
|
require "public/" . PAGE_ADDRESS . ".php";
|
|
|
|
closeHtml();
|