You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无SSH权限下如何通过URL解除Laravel站点维护模式?

解决Laravel维护模式下无法通过路由解除的问题

方案1:让解除维护的路由绕过维护模式拦截

Laravel的维护模式中间件会默认拦截所有请求,你可以在维护模式中间件中添加例外路由,让artisan/site-up不受拦截:

  • 对于Laravel 6及以上版本,找到app/Http/Middleware/PreventRequestsDuringMaintenance.php(若该文件不存在,可从框架核心目录复制到该路径后修改),修改$except数组:
protected $except = [
    'artisan/site-up',
    // 可选:可加入artisan/site-down,避免维护模式下无法再次触发(按需添加)
];
  • 对于Laravel 5.x版本,修改app/Http/Middleware/CheckForMaintenanceMode.php的$except数组即可。

配置完成后,再进入维护模式时,访问https://myweb.local/artisan/site-up就能正常执行Artisan::call('up')解除维护。

方案2:创建独立的公共文件直接解除维护

如果不想修改中间件,可在项目public目录下创建独立PHP文件(比如site-up.php),内容如下:

<?php
require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

// 执行artisan up命令
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
$kernel->call('up');

echo "站点已成功解除维护模式";

之后直接访问https://myweb.local/site-up.php即可解除维护,该文件不受Laravel路由和维护模式中间件拦截,适合应急场景。

方案3:触发维护模式时预先允许解除路由

若你是通过路由执行Artisan::call('down')进入维护模式,可在调用时添加--allow参数,预先将解除路由加入白名单:

Artisan::call('down', [
    '--allow' => 'artisan/site-up',
]);

这样在进入维护模式的同时,该路由就被允许访问,后续直接访问即可解除维护。

内容的提问来源于stack exchange,提问作者almiros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 01:10:15