Blame view

天文台pc/daocheng-api/public/router.php 1.06 KB
bc518174   王天杨   提交两个项目文件
1
2
  <?php
  // +----------------------------------------------------------------------
3a3dc915   王天杨   feat: 稻城亚丁项目批量更新
3
  // | PHP 内置服务器路由(php think run / php -S ... public/router.php)
bc518174   王天杨   提交两个项目文件
4
  // +----------------------------------------------------------------------
3a3dc915   王天杨   feat: 稻城亚丁项目批量更新
5
6
  // 旧版 is_file(DOCUMENT_ROOT . SCRIPT_NAME) 在部分 PHP 版本下会误判,导致 400。
  // 按 REQUEST_URI 判断 public 下是否存在同名静态文件;否则进入 ThinkPHP。
bc518174   王天杨   提交两个项目文件
7
  // +----------------------------------------------------------------------
bc518174   王天杨   提交两个项目文件
8
  
3a3dc915   王天杨   feat: 稻城亚丁项目批量更新
9
  declare(strict_types=1);
bc518174   王天杨   提交两个项目文件
10
  
3a3dc915   王天杨   feat: 稻城亚丁项目批量更新
11
12
13
14
15
16
17
  $uri = urldecode(parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH) ?? '/');
  
  if ($uri !== '/' && $uri !== '' && str_contains($uri, '..')) {
      http_response_code(403);
      header('Content-Type: text/plain; charset=utf-8');
      echo 'Forbidden';
      return true;
bc518174   王天杨   提交两个项目文件
18
  }
3a3dc915   王天杨   feat: 稻城亚丁项目批量更新
19
20
21
22
23
24
25
26
27
28
29
  
  if ($uri !== '/' && $uri !== '') {
      $path = __DIR__ . str_replace('/', DIRECTORY_SEPARATOR, $uri);
      if (is_file($path)) {
          return false;
      }
  }
  
  $_SERVER['SCRIPT_FILENAME'] = __DIR__ . DIRECTORY_SEPARATOR . 'index.php';
  
  require __DIR__ . DIRECTORY_SEPARATOR . 'index.php';