TP-Admin 2.X版本出于项目安全性和简洁性考虑,将项目代码和项目入口进行分离。项目入口文件,静态资源,缓存文件,以及图片目录都归档在Public目录下。项目代码存放于和Public目录平级目录下。通过http请求将无法直接访问到项目的任何文件。目录结构如下图所示:
下面给出一种解决方案,将入口文件提到项目根目录下。
- 首先将Public目录下的所有文件以及文件夹他到于Public目录同级目录下。
- 修改index.php 文件,内容如下
<?php // +---------------------------------------------------------------------- // | TP-Admin [ 多功能后台管理系统 ] // +---------------------------------------------------------------------- // | Copyright (c) 2013-2015 http://www.hhailuo.com All rights reserved. // +---------------------------------------------------------------------- // | Author: XiaoYao <476552238li@gmail.com> // +---------------------------------------------------------------------- // 应用入口文件 // 检测PHP环境 if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !'); // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false define('APP_DEBUG',true); define('BUILD_DIR_SECURE', false); // 定义应用目录 define('APP_PATH', __DIR__ . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR); define('RUNTIME_PATH', __DIR__ . DIRECTORY_SEPARATOR . 'Runtime' . DIRECTORY_SEPARATOR); // 获取并定义路径常量信息 $protocol = empty($_SERVER['HTTPS']) ? 'http' : 'https'; $port = $_SERVER['SERVER_PORT']; $disp_port = ($protocol == 'http' && $port == 80 || $protocol == 'https' && $port == 443) ? '' : ":$port"; $domain = $_SERVER['SERVER_NAME']; // 网站相对路径 $script_name_info = pathinfo($_SERVER['SCRIPT_NAME']); $base_url = ($script_name_info['dirname'] == DIRECTORY_SEPARATOR ? '' : $script_name_info['dirname']); // Apache Or Nginx 配置根目录 $script_filename_info = pathinfo($_SERVER['SCRIPT_FILENAME']); $doc_root = str_replace($base_url, '', $script_filename_info['dirname']); // 网站完整首页URL $full_url = "{$protocol}://{$domain}{$disp_port}{$base_url}"; define("ROOT_PATH", __DIR__ . DIRECTORY_SEPARATOR); define("DOC_PATH", $doc_root . DIRECTORY_SEPARATOR); define("BASE_URL", $base_url . '/'); define("UPLOAD_URL", $full_url . '/Uploads/'); define("UPLOAD_PATH", ROOT_PATH . 'Uploads' . DIRECTORY_SEPARATOR); // 引入框架入口文件 require './ThinkPHP/ThinkPHP.php';
好了,再试试吧!