一、入口文件访问优化
入口文件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、空方法