0802THINKPHP基础:入口文件、路由、页面跳转、重定向、空模块、空控制器、空方法
一、入口文件访问优化
入口文件index.php:只能去前台模块
入口文件admin.php:只能去后台模块
1、在public文件夹下建立admin.php文件
2、打开admin.php文件,复制
//定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
//加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';
3、分别在两个入口文件中绑定模块
index.php文件中绑定define('BIND_MODULE', 'index');
admin.php文件中绑定define('BIND_MODULE','admin' );
之前的访问
Index.php/index/Index/index admin.php/admin/Index/index
修改后的访问(省略了模块项)
Index.php/Index/index admin.php/Index/index (入口文件)、(控制器)、(方法)
4、隐藏入口文件
pache的配置过程,可以参考下:
a、httpd.conf配置文件中加载了mod_rewrite.so模块
b、AllowOverride None 将None改为 All 在虚拟主机中把这一项改为All
c、在应用入口文件同级目录添加.htaccess文件,内容如下:
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] 其中的index.php就是入口文件, 如果隐藏后台的入口文件 则改成admin.php
全部文件:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
d、重启服务
url地址变化:
隐藏前:http://www.thinkphp.com/index.php/index/index
隐藏后:http://www.thinkphp.com/index/index
二、设置路由
动态单个注册(TP5\thinkphp\library\think\Route.php)中的rule()方法
1、打开路由文件
C:\yingyongchengxu\wamp\tp5\application\route.php
2、设置路由文件
引入系统类
use think\Route;
定义路由规则、设置路由之后就不能使用pathinfo访问了
未绑定入口文件:Route::rule('newname','index/index/index');
已绑定入口文件:Route::rule('newname','index/index');
三、页面跳转
1、方法存在的文件路径
TP5\thinkphp\library\traits\controller\Jump.php
成功跳转 $this->success();
失败跳转 $this->error();
2、以登录功能为例:
3、成功和失败页面的文件路径配置 application/config.php
// 默认跳转页面对应的模板文件
'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
模板文件的路径:thinkphp\tpl\dispatch_jump.tpl
也可以自己指定模板,然后自己设计就可以
'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'success.tpl',
'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'error.tpl',、
四、重定向
五、空模块、空控制器、空方法
对于url中的恶意输入
1、空模块:在application/route.php添加
全局MISS路由
'__miss__' => ['index/Index/index', ['method'=> 'get']],
2、空控制器 新建Error控制器
3、空方法