我的Laravel应用程序中有以下路径组。
Route::group(['prefix' => 'home'], function() {
Route::controllers([
'contents' => 'site\ContentController',
]);
});
现在我想将前缀更改为其他内容
Route::group(['prefix' => 'user'], function() {
Route::controllers([
'contents' => 'site\ContentController',
]);
});
如何将旧的“前缀”路由重定向到新路由,以便正确地重定向任何旧的URL?
答案 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]