adlerka.top/lib/router.php

62 lines
1.8 KiB
PHP
Raw Normal View History

2024-01-18 11:49:38 +01:00
<?php
function initRouter(): bool
{
2024-01-18 11:49:38 +01:00
global $routerRequest;
global $routerConfig;
$routerRequest["requestAddress"] = array_slice(explode('.', $_SERVER['HTTP_HOST']), -3, 3); //get the last 3 elements
$needsRedirect = false;
if(count($routerRequest["requestAddress"]) < 3){
// Root domain accessed directly
$routerRequest["subdomain"] = $routerConfig["default_site"];
$routerRequest["domain"] = basename($routerRequest["requestAddress"][0]);
$routerRequest["tld"] = basename($routerRequest["requestAddress"][1]);
2024-02-02 15:53:32 +01:00
}
2024-02-02 15:55:23 +01:00
else {
$routerRequest["subdomain"] = basename($routerRequest["requestAddress"][0]);
$routerRequest["domain"] = basename($routerRequest["requestAddress"][1]);
$routerRequest["tld"] = basename($routerRequest["requestAddress"][2]);
2024-02-02 15:57:26 +01:00
if($routerRequest["subdomain"] == $routerConfig["default_site"]){
$routerRequest["subdomain"] = "";
2024-02-02 15:58:01 +01:00
$needsRedirect = true;
2024-02-02 15:57:26 +01:00
}
2024-02-02 15:55:23 +01:00
}
2024-02-02 15:57:26 +01:00
2024-02-02 15:53:32 +01:00
$routerRequest["page_name"] = basename($_SERVER["QUERY_STRING"]);
2024-01-18 11:49:38 +01:00
2024-02-02 15:53:32 +01:00
if (empty($routerRequest["page_name"])) {
// Page name is empty
$needsRedirect = true;
$routerRequest["page_name"] = $routerConfig["default_page"];
2024-01-18 11:49:38 +01:00
}
2024-02-02 15:53:32 +01:00
2024-01-18 11:49:38 +01:00
if ($needsRedirect) {
$redirectAddress = $routerConfig["protocol"] .
$routerRequest["subdomain"] . "." .
$routerRequest["domain"] . "." .
$routerRequest["tld"] . "/" .
$routerRequest["page_name"];
// Redirect with default page name
header("Location: $redirectAddress");
}
else{
if($_SERVER["REQUEST_METHOD"] == "POST"){
$routerRequest["type"] = "api";
}
if(empty($routerRequest["type"])){
$routerRequest["type"] = "page";
}
}
return !$needsRedirect;
}