如何将带参数/参数的请求转发到其他URL

时间:2018-03-18 19:10:21

标签: php laravel laravel-5

我正在开发一个系统,该系统接收对URL的请求,并在执行某些操作(与问题无关)后将请求转发到其他URL。示例:系统收到http://localhost/users/123/my/path?foo=1&bar=abc的GET请求,然后使用GET将用户转发到http://localhost/my/path?foo=1&bar=abc。获取新路径和参数不是问题。

当没有参数时,使用redirects可以正常工作。但是,我需要保留所有请求数据,例如方法名称(GET,POST等)和参数,这些数据不适用于redirect($newRoute)。根据Laravel文档和我尝试过的一些实验,redirect($newRoute)->whith($params)仅适用于http://localhost/{$id}/some/path等网址参数,但不适用于http://localhost/some/path?id=456

我还尝试使用旧请求创建新请求。除了一个基本细节外,它工作正常:浏览器中的URL仍然是旧的。例如:在请求http://localhost/users/123/my/path?foo=1&bar=abc时,系统按预期运行,但保留在相同的URL中,而不是正确的URL(http://localhost/my/path?foo=1&bar=abc)。要求系统返回/转到新URL。我创建了这样的新请求,如in here

$newRequest = Request::create("/" . $newRoute, $originalRequest->getMethod(), $originalRequest->all());
return Route::dispatch($newRequest);

关于如何完成我需要的任何想法?

谢谢你们!

1 个答案:

答案 0 :(得分:1)

怎么样: return redirect() - > away('https://localhost/my/path?foo='。$ foo。'& bar ='。$ bar。');

Redirecting to External Domains (Laravel)