1、入口文件访问优化php
入口文件index.php:只能去前台模块thinkphp
入口文件admin.php:只能去后台模块app
一、在public文件夹下创建admin.php文件框架
二、打开admin.php文件,复制iview
//定义应用目录ide
define('APP_PATH', __DIR__ . '/../application/');优化
//加载框架引导文件ui
require __DIR__ . '/../thinkphp/start.php';this
三、分别在两个入口文件中绑定模块url
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 (入口文件)、(控制器)、(方法)
四、隐藏入口文件
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
2、设置路由
动态单个注册(TP5\thinkphp\library\think\Route.php)中的rule()方法
一、打开路由文件
C:\yingyongchengxu\wamp\tp5\application\route.php
二、设置路由文件
引入系统类
use think\Route;
定义路由规则、设置路由以后就不能使用pathinfo访问了
未绑定入口文件:Route::rule('newname','index/index/index');
已绑定入口文件:Route::rule('newname','index/index');
3、页面跳转
1、方法存在的文件路径
TP5\thinkphp\library\traits\controller\Jump.php
成功跳转 $this->success();
失败跳转 $this->error();
2、以登陆功能为例:
三、成功和失败页面的文件路径配置 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',、
4、重定向
5、空模块、空控制器、空方法
对于url中的恶意输入
一、空模块:在application/route.php添加
全局MISS路由
'__miss__' => ['index/Index/index', ['method'=> 'get']],
二、空控制器 新建Error控制器
三、空方法