thinkphp 3.2 ERROR_PAGE以及TMPL_EXCEPTION_FILE配置后页面不跳转

本文介绍了解决ThinkPHP框架中配置自定义404页面无效的问题,通过修改核心文件实现正确跳转。

今天遇到一个问题就是我用的TP框架然后陪只错误的路由的时候让他跳转到404页面,但是配置不生效

配置如下

'TMPL_EXCEPTION_FILE'   => '/404.html',// 异常页面的模板文件
'ERROR_PAGE'=>'/404.html',// 错误定向页面

最后解决办法是更改了框架里面的代码

在 ThinkPHP/Library/Think/Think.class.php中找到 redirect($error_page);

然后用下面代码替换

header('HTTP/1.1 301 Moved Permanently');
header('Location: '.$error_page);

 

更多内容请参考原文地址:https://www.codelovers.cn/article/20181225175027.html

ThinkPHP5 中,`__APP__` 常量的功能可以通过 `request()` 对象来实现等效功能。具体来说,在 ThinkPHP3.2 中,`__APP__` 表示当前应用的 URL 地址(包含域名)。而在 ThinkPHP5 中,可以使用 `\think\Request::instance()->domain().\think\Request::instance()->baseUrl(true)` 来获取类似的路径。 以下是具体的实现方式: ```php // 获取当前应用的基础URL (类似于 __APP__) $appUrl = \think\Request::instance()->domain() . \think\Request::instance()->baseUrl(true); ``` 此代码片段通过组合请求对象的方法实现了与 ThinkPHP3.2 的 `__APP__` 类似的功能[^1]。其中: - `\think\Request::instance()->domain()` 返回当前站点的域名部分。 - `\think\Request::instance()->baseUrl(true)` 返回应用程序的基础路径,并自动排除入口文件名。 如果需要更简洁的方式,可以直接调用 `app()` 辅助函数访问 Request 实例: ```php $request = app(&#39;http&#39;)->request; $appUrl = $request->domain() . $request->baseUrl(true); ``` 这种写法更加现代化且符合 ThinkPHP5 的设计风格[^2]。 ### 示例代码 以下是一个完整的例子展示如何替换 `__APP__` 常量: ```php <?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { // 替代 __APP__ 常量的实现 $appUrl = request()->domain() . request()->baseUrl(true); return "Current App Url: " . $appUrl; } } ``` 在此示例中,`$appUrl` 将保存当前应用的基础 URL 路径,其效果相当于 ThinkPHP3.2 中的 `__APP__` 常量[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值