mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 11:09:18 +02:00
55 lines
1.2 KiB
PHP
55 lines
1.2 KiB
PHP
<?php
|
|
/**
|
|
* Router script for PHP built-in development server (php -S).
|
|
*
|
|
* All non-asset requests go through the front controller (public/index.php).
|
|
* Admin panel and static files are served directly.
|
|
*/
|
|
|
|
$uri = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
|
|
|
|
// Static assets: let the dev server handle them directly
|
|
$ext = pathinfo($uri, PATHINFO_EXTENSION);
|
|
if (
|
|
in_array(
|
|
$ext,
|
|
[
|
|
"css",
|
|
"js",
|
|
"png",
|
|
"jpg",
|
|
"jpeg",
|
|
"gif",
|
|
"ico",
|
|
"svg",
|
|
"woff",
|
|
"woff2",
|
|
"ttf",
|
|
"eot",
|
|
"otf",
|
|
"map",
|
|
],
|
|
true,
|
|
)
|
|
) {
|
|
return false; // serve directly
|
|
}
|
|
|
|
// Admin panel: serve files directly
|
|
if (str_starts_with($uri, "/admin")) {
|
|
// Rewrite /admin → /admin/index.php
|
|
$file = __DIR__ . "/public" . $uri;
|
|
if (is_dir($file)) {
|
|
$file .= "/index.php";
|
|
}
|
|
if (file_exists($file)) {
|
|
include $file;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
// Send everything else through the front controller
|
|
$_SERVER["SCRIPT_NAME"] = "/index.php";
|
|
require __DIR__ . "/public/index.php";
|
|
return true;
|