index.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | ThinkPHP [ WE CAN DO IT JUST THINK ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2006-2019 http://thinkphp.cn All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8. // +----------------------------------------------------------------------
  9. // | Author: liu21st <liu21st@gmail.com>
  10. // +----------------------------------------------------------------------
  11. // [ 应用入口文件 ]
  12. namespace think;
  13. /*
  14. * 不在tp加载后判断,为了安全的使用exit()
  15. * 使用绝对路径,确保花里胡哨的url均能正确判定和跳转
  16. */
  17. if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
  18. header("Access-Control-Allow-Credentials: true");
  19. header("Access-Control-Max-Age: 86400");
  20. header("Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS");
  21. header("Access-Control-Allow-Headers: " . $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']);
  22. header("Access-Control-Allow-Origin: *");
  23. exit();
  24. }
  25. $rootPath = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR;
  26. $server = isset($_REQUEST['server']) || isset($_SERVER['HTTP_SERVER']) || substr($_SERVER['REQUEST_URI'], 1, 9) == 'index.php';
  27. if (!$server) {
  28. // 用户访问前端
  29. // 安装检测-s
  30. if (!is_file($rootPath . 'install.lock') && is_file($rootPath . 'install' . DIRECTORY_SEPARATOR . 'index.html')) {
  31. header("location:" . DIRECTORY_SEPARATOR . 'install' . DIRECTORY_SEPARATOR);
  32. exit();
  33. }
  34. // 安装检测-e
  35. /*
  36. * 检测是否已编译前端-s
  37. * 如果存在 index.html 则访问 index.html
  38. */
  39. if (is_file($rootPath . 'index.html')) {
  40. header("location:" . DIRECTORY_SEPARATOR . 'index.html');
  41. exit();
  42. }
  43. // 检测是否已编译前端-e
  44. }
  45. require __DIR__ . '/../vendor/autoload.php';
  46. // 执行HTTP应用并响应
  47. $http = (new App())->http;
  48. $response = $http->run();
  49. $response->send();
  50. $http->end($response);