web.php中有方法把所有網址導向指定頁面?

laravel:10.x
php:8.2

請問web.php中或有哪種簡單快速方法,可把所有網址導向指定頁面?
舉例有個網站 abc3321.com
每個月固定一天的半夜2:00~6:00要進行網站的維護優化,屆時網站的所有網址皆被導向到 abcz321.com/maintenance
網站有8種主題A,分數個主題B,在分數個主題C,例如
/article ,主題A
/article/xx ,主題B
/article/xx/zz ,主題C
/article/xx/zz/aa
含get和post總共有1百多組

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

全局中间件,或者

// gpt告诉的测试了下好像可以,替换下固定方法指向指定页面
Route::any('{any}', [\App\Http\Controllers\IndexController::class, 'appTest'])->where('any', '.*');

但是你是每月固定时间而不是手动发布控制的,建议还是一楼说的中间件吧,能算下当前是否是指定日,指定时间段

2个月前 评论
讨论数量: 9

全局中间件跳转可行

2个月前 评论

这种场景就应该web服务层处理,例如在nginx/openrestry上处理,而不是放在业务上处理。

2个月前 评论

不应该在入口文件去处理,应该是中间件去处理,例如中间件判断的就是当前系统的状态,如果是维护状态,就进行操作,然后跳转到你指定路由或者路由组,或者直接在nginx上处理。

如果不想太折腾的话,还是中间件最适合,对原有代码影响小。

2个月前 评论

能寫個範例給予參考?

2个月前 评论

全局中间件,或者

// gpt告诉的测试了下好像可以,替换下固定方法指向指定页面
Route::any('{any}', [\App\Http\Controllers\IndexController::class, 'appTest'])->where('any', '.*');

但是你是每月固定时间而不是手动发布控制的,建议还是一楼说的中间件吧,能算下当前是否是指定日,指定时间段

2个月前 评论
sanders

可能楼主的意思是进入维护模式,Laravel 框架有这个功能:配置信息《Laravel 10 中文文档》

不过,楼主最后列出的几个地址我没懂是什么意思。

2个月前 评论
陈先生

完全可以使用维护模式来操作。

  1. maintenance 可以自定义页面
  2. 操作简单
  3. maintenance 也提供了通过简单的 pin 码来继续访问的操作
2个月前 评论

写个中间件,当路由匹配到上面的route规则,直接重定向到你目标的地址,大概这样:


<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;

class HelloMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param \Illuminate\Http\Request $request
     * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next
     * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
     */
    public function handle(Request $request, Closure $next)
    {
       if(!时间区间){
           return $next($request);
   }

if(时间区间 && in_array('路由',['目标路由A’,'目标路由B...])){

return 重定向到xxx

}

        return $response;
    }

}
2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!