ThinkPHP 自定义404页面及手动抛出404异常

2024-11-22 120 0

浏览器默认的404页面都比较简单,为网站设计一个友好的404页面,可以改善用户体验并有效的防止用户跳出。

thinkphp中在配置文件中简单配置就能支持自定义404页面。不同版本的thinkphp,略有差异。

thinkphp 5.0

'http_exception_template'    =>  [
    // 定义404错误的重定向页面地址
    404 =>  APP_PATH.'404.html',
    // 还可以定义其它的HTTP status
    401 =>  APP_PATH.'401.html',
]

thinkphp 5.1

'http_exception_template'    =>  [
    // 定义404错误的模板文件地址
    404 =>  Env::get('app_path') . '404.html',
    // 还可以定义其它的HTTP status
    401 =>  Env::get('app_path') . '401.html',
]

thinkphp 6.0

'http_exception_template'    =>  [
    // 定义404错误的模板文件地址
    404 =>  \think\facade\App::getAppPath() . '404.html',
    // 还可以定义其它的HTTP status
    401 =>  \think\facade\App::getAppPath() . '401.html',
]

需要注意两点,一是只在部署模式下有效-即 app_debug 为 false 的时候。二是【APP_PATH.'404.html'】这个文件必须存在,一旦文件不存在路径不对,仍会是浏览器默认的404页面。


有时候,一些页面不想被某些用户访问到,比如定时发布文章,未发布之前访问文章链接应当是404页面,如果手动抛出404异常呢?

在thinkphp中很简单:

throw new \think\exception\HttpException(404, '页面不存在');

或者使用 abort 助手函数:

abort(404,'页面不存在');

    相关文章

    织音云上新香港Platinum 8358处理器性能怪兽,爆炸高配折后最低仅需32元/月,数据对标物理机
    2025年华纳云新年焕新季,香港云4H4G3M特惠696元/年,E5物理服务器688元/月起
    莱卡云:2025年1月香港云服务器、美国云服务器、日本云服务器促销活动
    ThinkPHP6多应用多语言切换,最佳解决方案
    thinkphp thinkphp6 安装JWT
    php使用ip-api根据ip地扯获取位置信息

    发布评论