index.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. @ob_start();
  3. if(is_file('config.inc.php')){
  4. require 'config.inc.php';
  5. }elseif(is_file('config.sample.inc.php')){
  6. require 'config.sample.inc.php';
  7. }else{
  8. die('Missing Config File.');
  9. }
  10. /**
  11. * 运行环境:development/testing/production
  12. * */
  13. define('ENVIRONMENT','development');
  14. //========================================================
  15. if (defined('ENVIRONMENT'))
  16. {
  17. switch (ENVIRONMENT)
  18. {
  19. case 'development':
  20. error_reporting(E_ALL);
  21. break;
  22. case 'testing':
  23. case 'production':
  24. error_reporting(0);
  25. break;
  26. default:
  27. exit('The application environment is not set correctly.');
  28. }
  29. }
  30. //本地根目录
  31. define('BASE_PATH',dirname(__FILE__).'/');
  32. define('BASE_URL', rtrim(STATIC_URL,'/').'/');
  33. //自动判断环境
  34. if(!defined('RUN_ENV')){
  35. if(defined('SAE_SECRETKEY')){
  36. define('RUN_ENV','SAE');
  37. }elseif(getenv('HTTP_BAE_ENV_SK')){
  38. define('RUN_ENV','BAE');
  39. }else{
  40. define('RUN_ENV','LOCAL');
  41. }
  42. }
  43. global $PHP_SELF;
  44. $default_server_values = array(
  45. 'SERVER_SOFTWARE' => '',
  46. 'REQUEST_URI' => '',
  47. );
  48. $_SERVER = array_merge( $default_server_values, $_SERVER );
  49. // Fix for IIS when running with PHP ISAPI
  50. if ( empty( $_SERVER['REQUEST_URI'] ) || ( php_sapi_name() != 'cgi-fcgi' && preg_match( '/^Microsoft-IIS\//', $_SERVER['SERVER_SOFTWARE'] ) ) ) {
  51. // IIS Mod-Rewrite
  52. if ( isset( $_SERVER['HTTP_X_ORIGINAL_URL'] ) ) {
  53. $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL'];
  54. }
  55. // IIS Isapi_Rewrite
  56. else if ( isset( $_SERVER['HTTP_X_REWRITE_URL'] ) ) {
  57. $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
  58. } else {
  59. // Use ORIG_PATH_INFO if there is no PATH_INFO
  60. if ( !isset( $_SERVER['PATH_INFO'] ) && isset( $_SERVER['ORIG_PATH_INFO'] ) )
  61. $_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];
  62. // Some IIS + PHP configurations puts the script-name in the path-info (No need to append it twice)
  63. if ( isset( $_SERVER['PATH_INFO'] ) ) {
  64. if ( $_SERVER['PATH_INFO'] == $_SERVER['SCRIPT_NAME'] )
  65. $_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'];
  66. else
  67. $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO'];
  68. }
  69. // Append the query string if it exists and isn't null
  70. if ( ! empty( $_SERVER['QUERY_STRING'] ) ) {
  71. $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
  72. }
  73. }
  74. }
  75. // Fix for PHP as CGI hosts that set SCRIPT_FILENAME to something ending in php.cgi for all requests
  76. if ( isset( $_SERVER['SCRIPT_FILENAME'] ) && ( strpos( $_SERVER['SCRIPT_FILENAME'], 'php.cgi' ) == strlen( $_SERVER['SCRIPT_FILENAME'] ) - 7 ) )
  77. $_SERVER['SCRIPT_FILENAME'] = $_SERVER['PATH_TRANSLATED'];
  78. // Fix for Dreamhost and other PHP as CGI hosts
  79. if ( strpos( $_SERVER['SCRIPT_NAME'], 'php.cgi' ) !== false )
  80. unset( $_SERVER['PATH_INFO'] );
  81. // Fix empty PHP_SELF
  82. $PHP_SELF = $_SERVER['PHP_SELF'];
  83. if ( empty( $PHP_SELF ) )
  84. $_SERVER['PHP_SELF'] = $PHP_SELF = preg_replace( '/(\?.*)?$/', '', $_SERVER["REQUEST_URI"] );
  85. require_once BASE_PATH.'include/start.php';