Laravel重定向旧链接
我遇到问题:需要将许多断开的链接重定向到新目标。目前,所有旧链接都指向默认的404页面,但这不是一个选项。Laravel重定向旧链接
我想创建一个控制器,我将在其中定义重定向规则。
不幸的是,我不知道如何捕捉所有断开的链接指向我的新控制器。
我已经提出了更正建议,但不幸的是,重定向后我得到错误500. $ redirect_url是正确的,我已经检查过它。
这是新型号功能:
public function redirect($url) {
$redirect_url = '';
if(preg_match('!/bukmeikari/(.*)/(.*).html!isU', $url, $matches)) {
$redirect_url = str_replace('/bukmeikari/', '/bg/bukmeikari/', $url);
}
if($redirect_url != '') {
Redirect::to($redirect_url, 301);
}
}
,并在Handler.php:
public function render($request, Exception $e)
{
$rewrite_url = new RewriteUrl();
$rewrite_url->redirect(request()->fullUrl());
if($e instanceof NotFoundHttpException) {
return response()->view('errors.404', [], 404);
}
return parent::render($request, $e);
}
在此先感谢
您可以使用App\Exceptions\Handler
类render
方法完成你的任务。
从文档:
render方法负责转换给定异常到 应被发送回浏览器的HTTP响应。默认情况下, 异常传递给基类,它会为您生成响应 。不过,你可以*地检查异常类型或返回 自己的自定义响应
好吧,但我应该如何捕捉网址,我应该在哪里定义重定向规则?我有一个有规则的大名单,所以我希望它很清楚。 –
您可以创建一个新的类并使用'render'方法调用它。为了捕获网址,你可以使用'request()'全局函数。 –
可以帮我解决下一个问题:我得到错误500重定向 –
哪个laravel您正在使用? –
我正在使用Laravel 5.2 –