1、现阶段的需求是打开网址:https://wshop.local/?theme_preview_code=eyJpdiI6InBLRHBMXC9NSmo1Y2hkTFZUeEZLUEx3PT0iLCJ2YWx1ZSI6IlBlN3lFdnJiWmtNVVBjeHY5aENjMW5uMFhEVXVjNXBZeGNDK3dsaFFDRTFwQnBsTFFUdnpTNnpoSWxcL2x4SUFLRzVFUTh3bTUzSmNJb1NLOXFKd2puWVZRNExVdUk1QzlYSG9vUkFlZFRuSlR6KzZqVmlkSkpBQ3FrejVKRGhmUiIsIm1hYyI6Ijk1YzhlYTgzYmM2MmM3ZmI2Mzk1Yjc2NGZjZTgxZjhjOWZjMDVkNGVjNjAxNTNmNjU5NjdkMjk3ZGE1YjI0N2YifQ== 。在中间件中执行了 Session 相关的操作后,302 跳转至 https://wshop.local/ 。不能够直接跳转至首页,因为需要支持其他页面的跳转。
2、代码实现如下
/**
* Handle an incoming request.
*
* @param /Illuminate/Http/Request $request
* @param /Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
/* 主题预览,判断参数:theme_preview_code 是否存在,并且不为空 */
if ($request->filled('theme_preview_code')) {
...
// 重定向至当前路由,剥离请求参数
$route = Route::current();
return redirect()->route($route->uri);
}
return $next($request);
}
3、请求网址: https://wshop.local/cart?theme_preview_code=eyJpdiI6InBLRHBMXC9NSmo1Y2hkTFZUeEZLUEx3PT0iLCJ2YWx1ZSI6IlBlN3lFdnJiWmtNVVBjeHY5aENjMW5uMFhEVXVjNXBZeGNDK3dsaFFDRTFwQnBsTFFUdnpTNnpoSWxcL2x4SUFLRzVFUTh3bTUzSmNJb1NLOXFKd2puWVZRNExVdUk1QzlYSG9vUkFlZFRuSlR6KzZqVmlkSkpBQ3FrejVKRGhmUiIsIm1hYyI6Ijk1YzhlYTgzYmM2MmM3ZmI2Mzk1Yjc2NGZjZTgxZjhjOWZjMDVkNGVjNjAxNTNmNjU5NjdkMjk3ZGE1YjI0N2YifQ== 。302 跳转至 Location: https://wshop.local/cart 。符合预期。如图1
4、请求网址: https://wshop.local/?theme_preview_code=eyJpdiI6InBLRHBMXC9NSmo1Y2hkTFZUeEZLUEx3PT0iLCJ2YWx1ZSI6IlBlN3lFdnJiWmtNVVBjeHY5aENjMW5uMFhEVXVjNXBZeGNDK3dsaFFDRTFwQnBsTFFUdnpTNnpoSWxcL2x4SUFLRzVFUTh3bTUzSmNJb1NLOXFKd2puWVZRNExVdUk1QzlYSG9vUkFlZFRuSlR6KzZqVmlkSkpBQ3FrejVKRGhmUiIsIm1hYyI6Ijk1YzhlYTgzYmM2MmM3ZmI2Mzk1Yjc2NGZjZTgxZjhjOWZjMDVkNGVjNjAxNTNmNjU5NjdkMjk3ZGE1YjI0N2YifQ== 。状态代码: 500 Internal Server Error。Symfony/Component/Routing/Exception/RouteNotFoundException: Route [/] not defined. 如图2
5、查看 /routes/web.php
<?php
Route::get('/', 'IndexController@index')->name('commoditylist')->middleware('page-cache');
6、调整中间件中的代码实现
/**
* Handle an incoming request.
*
* @param /Illuminate/Http/Request $request
* @param /Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
/* 主题预览,判断参数:theme_preview_code 是否存在,并且不为空 */
if ($request->filled('theme_preview_code')) {
...
// 重定向至当前路由,剥离请求参数
return redirect()->route(Route::currentRouteName());
}
return $next($request);
}
7、请求网址: https://wshop.local/?theme_preview_code=eyJpdiI6InBLRHBMXC9NSmo1Y2hkTFZUeEZLUEx3PT0iLCJ2YWx1ZSI6IlBlN3lFdnJiWmtNVVBjeHY5aENjMW5uMFhEVXVjNXBZeGNDK3dsaFFDRTFwQnBsTFFUdnpTNnpoSWxcL2x4SUFLRzVFUTh3bTUzSmNJb1NLOXFKd2puWVZRNExVdUk1QzlYSG9vUkFlZFRuSlR6KzZqVmlkSkpBQ3FrejVKRGhmUiIsIm1hYyI6Ijk1YzhlYTgzYmM2MmM3ZmI2Mzk1Yjc2NGZjZTgxZjhjOWZjMDVkNGVjNjAxNTNmNjU5NjdkMjk3ZGE1YjI0N2YifQ== 。已经能够 302 自动跳转至 https://wshop.local 。符合预期。如图3
8、请求网址: https://wshop.local/cart?theme_preview_code=eyJpdiI6InBLRHBMXC9NSmo1Y2hkTFZUeEZLUEx3PT0iLCJ2YWx1ZSI6IlBlN3lFdnJiWmtNVVBjeHY5aENjMW5uMFhEVXVjNXBZeGNDK3dsaFFDRTFwQnBsTFFUdnpTNnpoSWxcL2x4SUFLRzVFUTh3bTUzSmNJb1NLOXFKd2puWVZRNExVdUk1QzlYSG9vUkFlZFRuSlR6KzZqVmlkSkpBQ3FrejVKRGhmUiIsIm1hYyI6Ijk1YzhlYTgzYmM2MmM3ZmI2Mzk1Yjc2NGZjZTgxZjhjOWZjMDVkNGVjNjAxNTNmNjU5NjdkMjk3ZGE1YjI0N2YifQ== 。302 跳转至 Location: https://wshop.local/cart 。符合预期。如图4
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/webdev/250760.html
