thinkphp5设置403 404等http状态页面


在thinkphp5中如何抛出异常状态码(比如401,403,404等),因为这些能极大的给用户以良好的体验。

因为在上线阶段,任何的系统错误信息都不能让浏览用户给看到,比如404(Not Found)页面我们应该直接抛出一个404异常,最好是配合一个404页面来展示出来,给用户以最好的体验,这是非常重要的。

要做到这一点,首先要在你的配置文件将调试模式关闭(在开发阶段要打开):

1
'app_debug'               => false,

然后在配置文件中配置404等页面的模板路径(APP_PATH指的是application路径):

1
'http_exception_template'     =>  [    404 =>  APP_PATH. '404.html' ,    403 =>  APP_PATH. '404.html' ,]

404页面部分代码如下:

1
2
3
4
5
6
7
< div  class = "bg" >   
< div  class = "cont" >      
< div  class = "c1" >< img  src = "/public/static/404/01.png"  class = "img1"  /></ div >      
< h2 ><? php  echo $e->getMessage()?> <!--输出抛出异常信息--> </ h2 >      
< div  class = "c2" >< a  href = "#"  class = "re" >返回论坛</ a >< a  href = "#"  class = "home" >网站首页</ a >< a  href = "#"  class = "sr" >搜索一下页面相关信息</ a ></ div >      
< div  class = "c3" >您可能输入了错误的网址,或者该网页已删除或移动,千锋PHP</ div >   
</ div ></ div >

下面来进行测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if  (Request::instance()->isAjax()) {    
     $data  = input();    
     $info  = [];    
     $where  '' ;    
     switch  ( $data [ 'msg' ]) {        
     case  '验证码' :            
         $info  = [                
         'y'  =>  '输入正确' ,                
         'n'  =>  '输入错误' ,            
         ]; 
            
     $where  = session::get( 'admin_login_session' ) == md5( $data [ 'param' ]); break ;    
   }    
   if  ( $where ) {        
     echo  '{"info":"'  $data [ 'msg' ] .  $info  [ 'y' ] .  '","status":"y"}' ; //注意ValidForm返回格式(json)   
   else  {        
     echo  '{"info":"'  $data [ 'msg' ] .  $info  [ 'n' ] .  '","status":"n"}' ; //注意ValidForm返回格式(json)    
   }
  } else {    
  throw  new  \think\exception\HttpException(403,  '~~~千锋PHP通知您非法请求~~~' );     //因为此处只能是ajax来访问,当直接在浏览器中访问该方法时,
  可以抛出一个403,其他类似),此处有简写方法abort代替
  }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM