重写路由闭包 301 重定向到 Laravel 中的控制器



我已经在Laravel 5.5+网络中为一些pdf文件实现了301重定向.php

例如
Route::get(
'old-url.pdf', function () {
return Redirect::to('new-url.pdf', 301);
});

它在开发环境中效果很好。

但是,当部署在生产站点上时,由于缓存(缓存不允许序列化闭包(,我收到错误,例如

LogicException: Noticed exception 'LogicException' with message 'Unable to prepare route [old-url.pdf] for serialization. Uses Closure.' in /XXX/vendor/laravel/framework/src/Illuminate/Routing/Route.php:880

我正在寻找有关如何使用控制器(或任何其他推荐的方法(重写上述重定向的示例

我们在框架中内置了一个RedirectController,可让您避免此问题:

Route::redirect('old-url.pdf', 'new-url.pdf', 301); // 301 by default

Laravel 5.5 文档 - 路由 - 重定向路由

像这样使用(阅读我对这个问题的评论(

Route::get('/old-url', function () {
return Redirect::to('new-url');
});

最新更新