CI4删除文章后重定向异常:未加载目标/blog页面
CI4删除文章后重定向异常(指向index.php而非/blog)的排查方案
以下是针对性的排查和解决步骤,按优先级排序:
1. 修正重定向代码的写法
务必使用CI4官方推荐的重定向方法,不要用原生PHP的header()函数——CI4的URL助手会自动处理baseURL的拼接,避免路径错误:
- 直接跳转至指定路径:
return redirect()->to('/blog'); - 如果你的
/blog路由设置了别名(比如$routes->get('/blog', 'Blog::index', ['as' => 'blog']);),更推荐用路由别名跳转:return redirect()->route('blog');
2. 检查App.php中的baseURL配置
打开app/Config/App.php,确认$baseURL已正确设置为你的站点根路径,例如:
public $baseURL = 'http://localhost:8080/'; // 本地开发环境 // 或生产环境:public $baseURL = 'https://your-domain.com/';
如果$baseURL为空或设置错误,CI4的重定向会默认指向index.php。
3. 验证路由规则的正确性
检查app/Config/Routes.php,确保/blog的路由无冲突且正确注册:
// 示例:绑定Blog控制器的index方法到/blog路径 $routes->get('/blog', 'BlogController::index');
避免存在优先级更高的路由规则拦截/blog的请求。
4. 确认URL重写配置生效
若服务器未配置URL重写,直接访问/blog会被解析到index.php,需确保:
- Apache服务器:
public目录下的.htaccess文件存在且包含CI4默认重写规则:RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] - Nginx服务器:在站点配置中添加:
location / { try_files $uri $uri/ /index.php$is_args$args; }
5. 清除CI4缓存
CI4可能缓存了路由或配置,执行以下命令清空缓存:
php spark cache:clear php spark config:clear php spark route:clear
内容的提问来源于stack exchange,提问作者chappie
相关产品推荐
相关产品推荐

