MoeNote / router.php
xiaozhian's picture
Upload 17 files
ca533c7 verified
<?php
// 设置时区
date_default_timezone_set('Asia/Shanghai');
// 处理错误输出
ini_set('display_errors', 'Off');
error_reporting(E_ALL);
ini_set('log_errors', 'On');
ini_set('error_log', '/dev/stderr');
// 确保输出正确的 Content-Type
if (strpos($_SERVER['REQUEST_URI'], '/api.php') === 0 ||
strpos($_SERVER['REQUEST_URI'], '/file_api.php') === 0 ||
strpos($_SERVER['REQUEST_URI'], '/upload.php') === 0) {
header('Content-Type: application/json');
}
// 处理 UUID 格式的 URL
if (preg_match('/^\/([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})$/', $_SERVER['REQUEST_URI'], $matches)) {
$_GET['id'] = $matches[1];
require __DIR__ . '/index.php';
return true;
}
// 处理静态文件
if (preg_match('/\.(css|js|png|jpg|jpeg|gif|ico|webp)$/', $_SERVER['REQUEST_URI'])) {
return false; // 让 PHP 内置服务器处理静态文件
}
// 处理 API 请求
if (strpos($_SERVER['REQUEST_URI'], '/api.php') === 0) {
ob_start(); // 开始输出缓冲
require __DIR__ . '/api.php';
$output = ob_get_clean(); // 获取并清除缓冲
if (json_decode($output) === null) {
// 如果不是有效的 JSON,返回错误
echo json_encode(['status' => 'error', 'message' => 'Invalid response']);
} else {
echo $output;
}
return true;
}
if (strpos($_SERVER['REQUEST_URI'], '/file_api.php') === 0) {
ob_start(); // 开始输出缓冲
require __DIR__ . '/file_api.php';
$output = ob_get_clean(); // 获取并清除缓冲
if (json_decode($output) === null && !headers_sent()) {
// 如果不是有效的 JSON 且头部未发送,返回错误
echo json_encode(['status' => 'error', 'message' => 'Invalid response']);
} else {
echo $output;
}
return true;
}
if (strpos($_SERVER['REQUEST_URI'], '/upload.php') === 0) {
ob_start(); // 开始输出缓冲
require __DIR__ . '/upload.php';
$output = ob_get_clean(); // 获取并清除缓冲
if (json_decode($output) === null) {
// 如果不是有效的 JSON,返回错误
echo json_encode(['status' => 'error', 'message' => 'Invalid response']);
} else {
echo $output;
}
return true;
}
// 默认路由到 index.php
require __DIR__ . '/index.php';
return true;