r117/router.php · 约 880 字符
1<?php2/**3 * PHP 内置服务器路由器:4 * - 仅允许安全静态资源(css/js/图片/字体等)由服务器直接托管(return false)5 * - 其余请求(/、/admin、/index.php?c=api&a=...、/index.php?c=admin&a=...)6 * 全部交由 index.php 执行,避免 .php 文件被当静态文件输出源码7 * - 未列出的扩展名(如 .php/.html)即使文件存在也交给 index.php 处理,避免泄露源码8 */9$uri = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH);10$file = __DIR__ . $uri;11$staticExt = ['css', 'js', 'png', 'jpg', 'jpeg', 'gif', 'svg', 'ico', 'woff', 'woff2', 'ttf', 'map', 'webp', 'json'];12$ext = strtolower(pathinfo($uri, PATHINFO_EXTENSION));13if ($uri !== '/' && $ext !== '' && in_array($ext, $staticExt, true) && is_file($file)) {14 return false; // 交由内置服务器静态托管15}16require __DIR__ . '/index.php';17