路线::获取参数并重定向

时间:2018-09-26 15:05:48

标签: php laravel

一个客户要求我将旧的URL重定向到新的URL。只是,它给我的URL包含一个参数,因此无法使用.htaccess重定向。我测试了,但没有成功。

我想使用Laravel路由系统进行重定向。

我尝试过:

Route::get('places.php?p=1740', function () {
   return redirect('new/url');
});

但是我有同样的问题。我有一个404错误,该页面不存在。我尝试了不带参数的方法,它有效。

我也尝试过:

Route::get('places.php/{p}', function ($p = '1740') {
    return redirect('new/url');
});

但是它也不起作用。

我只需要一个解决方案即可将其带有参数的网址重定向到新网址。

谢谢!

2 个答案:

答案 0 :(得分:0)

在laravel路由系统中,您无需指定.php扩展名,如下所示:

Route::get('places/{p}', function ($p = '1740') {
    return redirect('new/url');
});

答案 1 :(得分:0)

如果我理解正确,那么您有一个不在Laravel中构建的网站版本的旧网址,并且该网址可能已被搜索引擎索引,并且用户在访问该网址时输入404。您的目标是建立从https://example.com/places.php?p=1740https://example.com/new/url的301重定向。

如果是这种情况,您应该可以通过将以下行添加到/public/.htaccess来实现此目的:

Redirect 301 /places.php?p=1740 /new/url

或者您可以通过路由文件来做到这一点:

Route::redirect('/places.php?p=1740', '/new/url', 301);