Laravel 5 - 将以前的路线重定向到新路线

时间:2015-07-02 23:28:30

标签: php laravel

我的Laravel应用程序中有以下路径组。

Route::group(['prefix' => 'home'], function() {
  Route::controllers([
    'contents'  => 'site\ContentController',
  ]);
});

现在我想将前缀更改为其他内容

Route::group(['prefix' => 'user'], function() {
  Route::controllers([
    'contents'  => 'site\ContentController',
  ]);
});

如何将旧的“前缀”路由重定向到新路由,以便正确地重定向任何旧的URL?

2 个答案:

答案 0 :(得分:1)

我不知道/ home /中的具体URL是什么,所以我假设您希望/ home / *中的任何URL都重定向到/user /中的相同URL。

因为这是永久性更改,所以您希望确保执行301“永久”重定向。

Route::any('home/{restOfURL}', function ($restOfURL) {
    return redirect("/user/$restOfURL", 301);
})->where('restOfURL', '.*'); 

顺便说一句,where()部分在末尾需要在路径中允许'/'并使它只是得到整个东西以防你有更多斜杠的URL(例如“/ home / foo” /棒“)。

答案 1 :(得分:0)

如果您需要使用 301 Moved Permanently 状态代码重定向(通知机器人抓取您的网站内容已永久移动到新网址),那么您可以在您的网站中使用重写规则网站.htaccess

RewriteRule ^home/(.*)$ /user/$1 [R=301,NC,L]