ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口。
应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的。
入口文件定义
入口文件主要完成:
定义框架路径、项目路径(可选)
定义系统相关常量(可选)
载入框架入口文件(必须)
5.0默认的应用入口文件位于public/index.PHP,内容如下:
// 定义应用目录
define(‘APP_PATH’, DIR . ‘/…/application/’);
// 加载框架引导文件
require DIR . ‘/…/thinkPHP/start.PHP’;
入口文件位置的设计是为了让应用部署更安全,public目录为web可访问目录,其他的文件都可以放到非WEB访问目录下面。
修改入口文件位置请查看章节<部署-虚拟主机环境>
入口文件中还可以定义一些系统变量,用于相关的绑定操作(通常用于多个入口的情况),这个会在后面涉及,暂且不提。
给APP_PATH定义绝对路径会提高系统的加载效率。
在有些情况下,你可能需要加载框架的基础引导文件base.PHP,该引导文件和start.PHP的区别是不会主动执行应用,而是需要自己进行应用执行,下面是一个例子:
// 定义应用目录
define(‘APP_PATH’, DIR . ‘/…/application/’);
// 加载框架基础引导文件
require DIR . ‘/…/thinkPHP/base.PHP’;
// 添加额外的代码
// …
// 执行应用
\think\App::run()->send();
隐藏入口文件
在ThinkPHP5.0中,出于优化的URL访问原则,还支持通过URL重写隐藏入口文件,下面以Apache为例说明隐藏应用入口文件index.PHP的设置。
下面是Apache的配置过程,可以参考下:
1、httpd.conf配置文件中加载了mod_rewrite.so模块
2、AllowOverride None 将None改为 All
3、在应用入口文件同级目录添加.htaccess文件,内容如下:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.PHP/$1 [QSA,PT,L]
更多其它环境的隐藏入口文件参考后面的 URL重写
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。