我正在开发一个系统,该系统接收对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);
关于如何完成我需要的任何想法?
谢谢你们!
答案 0 :(得分:1)
怎么样: return redirect() - > away('https://localhost/my/path?foo='。$ foo。'& bar ='。$ bar。');