将路由从 index.php?id={id} 重定向到 /index/{slug}
Redirect route from index.php?id={id} to /index/{slug}
我将一个旧项目转换为 laravel,我想创建一些 301 路由来重定向旧的 url。
旧url: 例子.com/index.php?id={id}
新url:示例。com/index/{slug}
我尝试使用类似的东西:
Route::get('index.php?id={id}', function($id){
$slug = {where I select slug from id}
return Redirect::to('/index/'.$slug, 301);
});
但是没用,无法识别url。
你的做法有点不对,你不需要路由,而是一个中间件。
php artisan make:middleware Redirect
public function handle( $request, Closure $next )
{
if( preg_match( '#index.php\?id=(\d+)#is', $request->fullurl(), $matches ) ) {
return redirect()->to( "/index/{$matches[1]}", 301 );
}
return $next( $request );
}
将中间件添加到 Http 内核
我将一个旧项目转换为 laravel,我想创建一些 301 路由来重定向旧的 url。
旧url: 例子.com/index.php?id={id}
新url:示例。com/index/{slug}
我尝试使用类似的东西:
Route::get('index.php?id={id}', function($id){
$slug = {where I select slug from id}
return Redirect::to('/index/'.$slug, 301);
});
但是没用,无法识别url。
你的做法有点不对,你不需要路由,而是一个中间件。
php artisan make:middleware Redirect
public function handle( $request, Closure $next )
{
if( preg_match( '#index.php\?id=(\d+)#is', $request->fullurl(), $matches ) ) {
return redirect()->to( "/index/{$matches[1]}", 301 );
}
return $next( $request );
}
将中间件添加到 Http 内核