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、空方法

   

 

posted @ 2018-08-02 12:30  359950470  阅读(762)  评论(0编辑  收藏  举报